Skip to content

Commit 03260af

Browse files
author
Juarez Mota
committed
feat: add focus management for interactive choice cards in DesignableBanner
1 parent d1e3d08 commit 03260af

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

dotcom-rendering/src/components/marketing/banners/designableBanner/DesignableBanner.tsx

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import type {
2323
Image,
2424
} from '@guardian/support-dotcom-components/dist/shared/types';
2525
import type { ChoiceCard } from '@guardian/support-dotcom-components/dist/shared/types/props/choiceCards';
26-
import { useEffect, useState } from 'react';
26+
import { useEffect, useRef, useState } from 'react';
2727
import {
2828
removeMediaRulePrefix,
2929
useMatchMedia,
@@ -137,6 +137,17 @@ const DesignableBanner: ReactComponent<BannerRenderProps> = ({
137137
);
138138
}, []);
139139

140+
const bannerRef = useRef<HTMLDivElement>(null);
141+
142+
useEffect(() => {
143+
const firstInteractiveChoiceCard = bannerRef.current?.querySelector(
144+
'input',
145+
) as HTMLElement | null;
146+
if (firstInteractiveChoiceCard) {
147+
firstInteractiveChoiceCard.focus();
148+
}
149+
}, []);
150+
140151
useEffect(() => {
141152
if (iosAppBannerPresent) {
142153
// send ophan event
@@ -275,6 +286,9 @@ const DesignableBanner: ReactComponent<BannerRenderProps> = ({
275286

276287
return (
277288
<div
289+
ref={bannerRef}
290+
role="alert"
291+
tabIndex={-1}
278292
css={styles.outerContainer(
279293
templateSettings.containerSettings.backgroundColour,
280294
iosAppBannerPresent,

0 commit comments

Comments
 (0)