diff --git a/src/frontend/src/stores/screenReaderAnnouncer.ts b/src/frontend/src/stores/screenReaderAnnouncer.ts new file mode 100644 index 00000000..bdbca17d --- /dev/null +++ b/src/frontend/src/stores/screenReaderAnnouncer.ts @@ -0,0 +1,33 @@ +import { proxy } from 'valtio' + +type Politeness = 'polite' | 'assertive' + +type ScreenReaderAnnouncement = { + message: string + politeness: Politeness + id: number +} + +type ScreenReaderAnnouncerState = { + announcement: ScreenReaderAnnouncement +} + +export const screenReaderAnnouncerStore = proxy({ + announcement: { + message: '', + politeness: 'polite', + id: 0, + }, +}) + +export const announceToScreenReader = ( + message: string, + politeness: Politeness = 'polite' +) => { + screenReaderAnnouncerStore.announcement = { + message, + politeness, + id: screenReaderAnnouncerStore.announcement.id + 1, + } +} +