diff --git a/src/lib/announce.ts b/src/lib/announce.ts index 153b82df..c87e27a2 100644 --- a/src/lib/announce.ts +++ b/src/lib/announce.ts @@ -18,8 +18,17 @@ export interface AnnounceOptions { assertive?: boolean; } +function isIos(): boolean { + try { + return Platform.OS === 'ios'; + } catch { + // A react-native stand-in without Platform (tests). + return false; + } +} + export function announce(message: string, options: AnnounceOptions = {}): void { - if (Platform.OS !== 'ios') return; + if (!isIos()) return; const text = message.replace(/\s+/g, ' ').trim(); if (!text) return; const now = Date.now(); diff --git a/src/lib/screen-reader.ts b/src/lib/screen-reader.ts index f95a59b3..50eee3d1 100644 --- a/src/lib/screen-reader.ts +++ b/src/lib/screen-reader.ts @@ -10,8 +10,8 @@ let watching = false; function watch(): void { if (watching) return; watching = true; - const info = AccessibilityInfo as typeof AccessibilityInfo | undefined; try { + const info = AccessibilityInfo as typeof AccessibilityInfo | undefined; void info?.isScreenReaderEnabled?.().then((on) => { screenReaderOn = on; }).catch(() => undefined); info?.addEventListener?.('screenReaderChanged', (on: boolean) => { screenReaderOn = on; }); } catch {