️(frontend) add screen reader announcer store

create shared state for screen reader announcements.
This commit is contained in:
Cyril
2026-01-28 11:40:54 +01:00
parent 8295574616
commit 9023e54352

View File

@@ -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<ScreenReaderAnnouncerState>({
announcement: {
message: '',
politeness: 'polite',
id: 0,
},
})
export const announceToScreenReader = (
message: string,
politeness: Politeness = 'polite'
) => {
screenReaderAnnouncerStore.announcement = {
message,
politeness,
id: screenReaderAnnouncerStore.announcement.id + 1,
}
}