diff --git a/src/Collapse.js b/src/Collapse.js
index 9bac27e6d..af2146d20 100644
--- a/src/Collapse.js
+++ b/src/Collapse.js
@@ -127,6 +127,7 @@ class Collapse extends Component {
style={{ ...childProps.style, ...style }}
className={classes}
ref={this.props.innerRef}
+ aria-expanded={isOpen ? 'true' : 'false'}
>
{children}
diff --git a/src/__tests__/Collapse.spec.js b/src/__tests__/Collapse.spec.js
index 3000ffad9..bc508860f 100644
--- a/src/__tests__/Collapse.spec.js
+++ b/src/__tests__/Collapse.spec.js
@@ -122,4 +122,12 @@ describe('Collapse', () => {
expect(wrapper.state('height')).toBe(null);
wrapper.unmount();
});
+
+ it('should set aria-expanded', () => {
+ isOpen = false;
+ wrapper = mount();
+ expect(wrapper.find('div').prop('aria-expanded')).toBe('false');
+ toggle();
+ expect(wrapper.find('div').prop('aria-expanded')).toBe('true');
+ });
});
diff --git a/src/__tests__/UncontrolledCollapse.spec.js b/src/__tests__/UncontrolledCollapse.spec.js
index dcd5e102f..04c3fd667 100644
--- a/src/__tests__/UncontrolledCollapse.spec.js
+++ b/src/__tests__/UncontrolledCollapse.spec.js
@@ -95,4 +95,14 @@ describe('UncontrolledCollapse', () => {
expect(UncontrolledCollapse.prototype.toggle.mock.calls.length).toBe(1);
});
+
+ it('should set aria-expanded', () => {
+ const collapse = mount(Yo!);
+
+ expect(collapse.find('div').prop('aria-expanded')).toBe('false');
+ toggler.click();
+ collapse.update();
+
+ expect(collapse.find('div').prop('aria-expanded')).toBe('true');
+ });
});