import type { AnnounceFeatureKey } from './features/AnnounceFeatures'; import type { AnnounceFeature } from './AnnounceFeature'; import type { CompatibleKnownAnnounceStrings } from 'roosterjs-editor-types/lib/compatibleTypes'; import type { EditorPlugin, IEditor, PluginEvent, AnnounceData, KnownAnnounceStrings } from 'roosterjs-editor-types'; /** * Announce messages to screen reader by using aria live element. */ export default class Announce implements EditorPlugin { private stringsMapOrGetter?; private ariaLiveElement; private editor; private features; private lastFocusedElement; constructor(stringsMapOrGetter?: Map | ((key: KnownAnnounceStrings | CompatibleKnownAnnounceStrings) => string) | undefined, skipAnnounceFeatures?: AnnounceFeatureKey[], additionalFeatures?: AnnounceFeature[]); /** * Get a friendly name of this plugin */ getName(): string; /** * Initialize this plugin * @param editor The editor instance */ initialize(editor: IEditor): void; /** * Dispose this plugin */ dispose(): void; /** * Handle events triggered from editor * @param event PluginEvent object */ onPluginEvent(ev: PluginEvent): void; private handleFeatures; protected announce(announceData: AnnounceData, editor: IEditor): void; private getString; /** * @internal * Public only for unit testing. * @returns */ getAriaLiveElement(): HTMLDivElement | undefined; }