diff --git a/packages/react/src/lib/accessibility/FocusZone/CHANGELOG.md b/packages/react/src/lib/accessibility/FocusZone/CHANGELOG.md index 44697d45b5..cb1eb8686b 100644 --- a/packages/react/src/lib/accessibility/FocusZone/CHANGELOG.md +++ b/packages/react/src/lib/accessibility/FocusZone/CHANGELOG.md @@ -55,7 +55,7 @@ This is a list of changes made to the Stardust copy of FocusTrapZone in comparis ### fixes - Do not focus trigger on outside click @sophieH29 ([#627](https://github.com/stardust-ui/react/pull/627)) - +- Do not hide aria-live regions from accessibility tree @sophieH29 ([#917](https://github.com/stardust-ui/react/pull/917)) ### features - Add focus trap zone [#239](https://github.com/stardust-ui/react/pull/239) - Used Stardust utils instead of Fabric utilities: diff --git a/packages/react/src/lib/accessibility/FocusZone/FocusTrapZone.tsx b/packages/react/src/lib/accessibility/FocusZone/FocusTrapZone.tsx index d472e3ebff..d0e122e94e 100644 --- a/packages/react/src/lib/accessibility/FocusZone/FocusTrapZone.tsx +++ b/packages/react/src/lib/accessibility/FocusZone/FocusTrapZone.tsx @@ -296,13 +296,19 @@ export class FocusTrapZone extends React.Component { ) } - // loop through all body's children, except the last one - which is the popup - for (let index = 0; index < bodyChildren.length - 1; index++) { - const element = bodyChildren[index] - - if (element.getAttribute('aria-hidden') !== 'true') { - element.setAttribute('aria-hidden', 'true') - element.setAttribute(HIDDEN_FROM_ACC_TREE, 'true') + for (let index = 0; index < bodyChildren.length; index++) { + const currentChild = bodyChildren[index] as HTMLElement + const isOrHasFocusTrapZone = + currentChild === this._root.current || currentChild.contains(this._root.current) + const isAriaLiveRegion = currentChild.hasAttribute('aria-live') + + if ( + !isOrHasFocusTrapZone && + !isAriaLiveRegion && + currentChild.getAttribute('aria-hidden') !== 'true' + ) { + currentChild.setAttribute('aria-hidden', 'true') + currentChild.setAttribute(HIDDEN_FROM_ACC_TREE, 'true') } } } diff --git a/packages/react/test/specs/lib/FocusTrapZone-test.tsx b/packages/react/test/specs/lib/FocusTrapZone-test.tsx index 42495251e2..ad878314b2 100644 --- a/packages/react/test/specs/lib/FocusTrapZone-test.tsx +++ b/packages/react/test/specs/lib/FocusTrapZone-test.tsx @@ -1,6 +1,7 @@ import * as React from 'react' import * as ReactTestUtils from 'react-dom/test-utils' import * as keyboardKey from 'keyboard-key' + import { FocusTrapZone, FocusZone,