- new `string-template` and `renderStringPref` (regex pattern matching) in chromium extension options
- new `cssInvertPage`, `cssInvertThumb`, and `cssInvertFilter` settings (with defaults; off by default)
- available filters: `brightness()`, `contrast()`, `grayscale()`, `invert()`, `sepia()`, `saturate()`, and `hue-rotate()` via regex (valid CSS syntax)
- translations for `en-US`, `en-GB`, `en-CA`, and `de`
- filter influences PDF view container and PDF thmbnail container (thus also custom text/drawings/highlights)
- new svg as icon (modified `toolbarButton-editorStamp.svg`)
- button toggle is added next to zoom/scale controls in the middle of the toolbar
NVDA behaves differently depending if the user is hovering or focusing an added signature.
An aria-description is read in both cases while an aria-label is not.
Looking at PR 18492 it doesn't seem that the `$percent` variable, for the `pdfjs-editor-new-alt-text-ai-model-downloading-progress` l10n-string, was ever used.
Having some interactive elements forces the screen readers to switch to form mode
and consequently they delegate the keyboard stuff to the browser.
This patch sets an aria label on each editor in order to have a better description than just
'application'.
When a user deletes any number of annotations, they are notified of the action
by a popup message with an undo button. Besides that, this change reuses the
existing messageBar CSS class from the new alt-text dialog as much as possible.
Currently we manually localize and update the DOM-elements of the AltText-button, and it seems nicer to utilize Fluent "properly" for that task.
This can be achieved by introducing an explicit `span`-element on the AltText-button (similar to e.g. the regular toolbar-buttons), and adding a few more l10n-strings, since that allows just setting the `data-l10n-id`-attribute on all the relevant DOM-elements.
Finally, note how we no longer need to localize any strings eagerly when initializing the various editors.
By using "data-l10n-attrs" it's possible to instruct Fluent to localize *custom* attributes, which means that we don't need to manually translate/update the "default-content" in FreeText editors.