Skip to content

Commit bb8baee

Browse files
authored
Accessibility: Read errors aloud in resource search delegation (#2423)
* Accessibility: Read aloud error message when trying to delegate from search section in delegation modal * account for repeat errors
1 parent 018dc8b commit bb8baee

1 file changed

Lines changed: 23 additions & 11 deletions

File tree

src/features/amUI/common/DelegationModal/SingleRights/ResourceAlert.tsx

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import type { ServiceResource } from '@/rtk/features/singleRights/singleRightsAp
66
import { ErrorCode } from '@/resources/utils/errorCodeUtils';
77
import { useGetReporteeQuery } from '@/rtk/features/userInfoApi';
88
import { TechnicalErrorParagraphs } from '@/features/amUI/common/TechnicalErrorParagraphs/TechnicalErrorParagraphs';
9+
import { StatusMessageForScreenReader } from '@/components/StatusMessageForScreenReader/StatusMessageForScreenReader';
910
import { DelegationAction } from '../EditModal';
1011

1112
export interface ResourceAlertProps {
@@ -37,6 +38,8 @@ export const ResourceAlert = ({
3738
const isRequest = availableActions?.includes(DelegationAction.REQUEST);
3839
const isApprove = availableActions?.includes(DelegationAction.APPROVE);
3940

41+
const [srMessage, setSrMessage] = React.useState('');
42+
4043
if (resource.delegable === false) {
4144
headingText = isRequest
4245
? t('delegation_modal.request.cannot_request_right')
@@ -88,18 +91,27 @@ export const ResourceAlert = ({
8891
content = <DsParagraph>{t('delegation_modal.service_error.missing_rights')}</DsParagraph>;
8992
}
9093
}
94+
React.useEffect(() => {
95+
setSrMessage(headingText);
96+
}, [headingText, error?.time]);
97+
9198
return (
92-
<DsAlert
93-
data-color={color}
94-
className={className}
95-
>
96-
<DsHeading
97-
level={2}
98-
data-size='2xs'
99+
<>
100+
<StatusMessageForScreenReader politenessSetting='assertive'>
101+
{srMessage}
102+
</StatusMessageForScreenReader>
103+
<DsAlert
104+
data-color={color}
105+
className={className}
99106
>
100-
{headingText}
101-
</DsHeading>
102-
{content}
103-
</DsAlert>
107+
<DsHeading
108+
level={2}
109+
data-size='2xs'
110+
>
111+
{headingText}
112+
</DsHeading>
113+
{content}
114+
</DsAlert>
115+
</>
104116
);
105117
};

0 commit comments

Comments
 (0)