fix: a11y regression audio msg sending
This commit is contained in:
parent
9ca0bbc35c
commit
a12bd59352
2 changed files with 19 additions and 6 deletions
|
|
@ -5,10 +5,21 @@ import {
|
||||||
} from "react-native";
|
} from "react-native";
|
||||||
|
|
||||||
export function setA11yFocus(refOrNode) {
|
export function setA11yFocus(refOrNode) {
|
||||||
const node = findNodeHandle(refOrNode?.current ?? refOrNode);
|
// RN's `setAccessibilityFocus` expects a native host node handle.
|
||||||
if (!node) return;
|
// In practice, callers may pass:
|
||||||
|
// - a ref object ({ current })
|
||||||
AccessibilityInfo.setAccessibilityFocus(node);
|
// - a host component
|
||||||
|
// - a composite component instance (invalid)
|
||||||
|
// - null/undefined
|
||||||
|
// We must never throw here, otherwise we can crash the whole app.
|
||||||
|
try {
|
||||||
|
const candidate = refOrNode?.current ?? refOrNode;
|
||||||
|
const node = findNodeHandle(candidate);
|
||||||
|
if (typeof node !== "number") return;
|
||||||
|
AccessibilityInfo.setAccessibilityFocus(node);
|
||||||
|
} catch (_e) {
|
||||||
|
// noop
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function setA11yFocusAfterInteractions(refOrNode) {
|
export function setA11yFocusAfterInteractions(refOrNode) {
|
||||||
|
|
|
||||||
|
|
@ -505,7 +505,9 @@ function AlertCurMap() {
|
||||||
|
|
||||||
const closeStepper = useCallback(() => {
|
const closeStepper = useCallback(() => {
|
||||||
setStepperIsOpened(false);
|
setStepperIsOpened(false);
|
||||||
setA11yFocusAfterInteractions(lastStepsTriggerRef.current);
|
// Pass the ref object (not `.current`) so `findNodeHandle` can safely
|
||||||
|
// resolve the native host view.
|
||||||
|
setA11yFocusAfterInteractions(lastStepsTriggerRef);
|
||||||
}, [setStepperIsOpened]);
|
}, [setStepperIsOpened]);
|
||||||
|
|
||||||
const stepperOnOpen = useCallback(() => {
|
const stepperOnOpen = useCallback(() => {
|
||||||
|
|
@ -521,7 +523,7 @@ function AlertCurMap() {
|
||||||
setStepperIsOpened(false);
|
setStepperIsOpened(false);
|
||||||
}
|
}
|
||||||
announceForA11yIfScreenReaderEnabled("Liste des étapes fermée");
|
announceForA11yIfScreenReaderEnabled("Liste des étapes fermée");
|
||||||
setA11yFocusAfterInteractions(lastStepsTriggerRef.current);
|
setA11yFocusAfterInteractions(lastStepsTriggerRef);
|
||||||
}, [stepperIsOpened, setStepperIsOpened]);
|
}, [stepperIsOpened, setStepperIsOpened]);
|
||||||
|
|
||||||
const [externalGeoIsVisible, setExternalGeoIsVisible] = useState(false);
|
const [externalGeoIsVisible, setExternalGeoIsVisible] = useState(false);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue