Linus Rath
b22968a7df
fix: show the message list, not only the reader, with a large browser text size and wrap cut-off labels
2026-10-29 19:38:45 +01:00
Linus Rath
e57e922950
feat: make buttons, menu items, rows and switches 44px when large targets is on
2026-10-29 19:38:45 +01:00
Linus Rath
9f6c7b99c9
fix: raise text contrast to 4.5:1 in every built-in theme, light and dark
2026-10-29 19:38:45 +01:00
Linus Rath
a1ee9035de
fix: scroll without gliding when reduce motion is on
2026-10-29 19:38:45 +01:00
Linus Rath
7525fe18e4
fix: keep switches, selections and pressed buttons visible in Windows contrast themes
2026-10-29 19:38:44 +01:00
Linus Rath
c4dfa6f3e4
fix: draw the focus outline on plugin kit buttons, fields and switches
2026-10-29 19:38:44 +01:00
Linus Rath
1111dd6709
fix: show the focus outline on menu items, grid cells and other roving-focus controls
2026-10-29 19:38:44 +01:00
Linus Rath
a6701795eb
fix: skip screen reader announcements once the page is gone
2026-10-29 18:58:11 +01:00
Linus Rath
315e292706
feat: show the accessibility and help links on the login page, in the settings sidebar and in the account menu
2026-10-29 18:28:06 +01:00
Linus Rath
623c9e1792
feat: let operators set accessibility statement, barrier report, help, Easy Read and sign language links
2026-10-29 18:27:35 +01:00
Linus Rath
58f01fe7a3
feat: let admins lock a setting to a chosen value and preset any setting, accessibility options included
2026-10-29 18:27:35 +01:00
Linus Rath
4832d37ff0
test: parse plain-language strings as ICU when comparing their placeholders
2026-10-29 18:10:29 +01:00
Linus Rath
bb739c7445
feat: use plainer English and German wording for sign-in and error messages when plain language is on
2026-10-29 18:07:44 +01:00
Linus Rath
4e2affe406
fix: name the remaining search boxes, filter fields and settings inputs that only had a placeholder
2026-10-29 18:03:00 +01:00
Linus Rath
ef13556a01
fix: give every contact form field a label screen readers read out
2026-10-29 18:02:59 +01:00
Linus Rath
01a6ab22d2
fix: name the plugin kit's buttons in the app language and read field hints and errors with the field
2026-10-29 18:02:58 +01:00
Linus Rath
da215b8c06
fix: underline links in mail shown in the app's colours so button links stay recognisable
2026-10-29 17:53:59 +01:00
Linus Rath
af3019ea2b
feat: read a message aloud with the browser's voice, highlighting what it reads
2026-10-29 17:53:58 +01:00
Linus Rath
bb78697981
feat: pause animated images in mail with a play button
2026-10-29 17:53:57 +01:00
Linus Rath
1e929b0a95
feat: read HTML mail as plain text, by default or per message
2026-10-29 17:53:57 +01:00
Linus Rath
3c4d63006c
feat: scale wide mail down to the pane on any screen with fit wide mail on
2026-10-29 17:53:56 +01:00
Linus Rath
8cc0f8f258
feat: keep message lines to about 80 characters with the comfortable reading width
2026-10-29 17:53:56 +01:00
Linus Rath
dcc0d600f4
feat: show HTML mail in the app's font, colours and spacing when styles are overridden
2026-10-29 17:53:56 +01:00
Linus Rath
24a13cc1f8
fix: stop animations inside mail when reduce motion is on
2026-10-29 17:53:55 +01:00
Linus Rath
c07ba1a370
feat: show message bodies at the chosen text size and enlarge text below the minimum
2026-10-29 17:53:55 +01:00
Linus Rath
c20b9846b9
fix: name each message frame after its subject and give it the mail's language
2026-10-29 17:53:54 +01:00
Linus Rath
cf4d02b49b
feat: draw calendar, tag and folder colours in a colour-blind-safe palette when that setting is on
2026-10-29 17:53:51 +01:00
Linus Rath
d713d31af3
feat: announce how much new mail came and flash the tab title slowly with visual alerts
2026-10-29 17:53:49 +01:00
Linus Rath
a7ce265ac8
feat: keep plugin notifications off the desktop while do not disturb is on
2026-10-29 17:53:48 +01:00
Linus Rath
374ae9c8dc
feat: ask before deleting or archiving when the confirm settings are on
2026-10-29 17:53:48 +01:00
Linus Rath
ee17c0dbaf
feat: undo marking read or unread, stars and tags from the toast or with Ctrl+Z
2026-10-29 17:53:47 +01:00
Linus Rath
4af4404962
feat: undo the last mail actions with Ctrl+Z or z, newest first
2026-10-29 17:53:46 +01:00
Linus Rath
8d2ebccf08
feat: keep undo toasts, errors and reminders as long as the notification duration says
2026-10-29 17:53:45 +01:00
Linus Rath
be5e2dbc53
feat: hold toasts while focused and jump to the newest with Alt+Shift+N
2026-10-29 17:53:45 +01:00
Linus Rath
e2fc2c750a
feat: read toasts out to screen readers, errors assertively
2026-10-29 17:53:44 +01:00
Linus Rath
36d13b76bd
feat: add app-wide live regions for screen reader announcements
2026-10-29 17:53:44 +01:00
Linus Rath
420bf8f9a4
feat: offer an accessible example message in the template picker
2026-10-29 17:53:44 +01:00
Linus Rath
53cb49d3ce
feat: ask for alt text when an image goes into a message
...
Pasted and dropped images used to get the file name as alt text, and
there was no way to change it. Now a small dialog asks what the image
shows right after it is inserted, with a "Decorative image" option that
writes alt="". An image already in the text can be described from the
toolbar or from the ALT button on the selected image. The plain-text
part of an HTML mail writes described images as "[Image: ...]" and
leaves decorative ones out.
The formatting toolbar now also re-renders when only the selection
changes, so its pressed states and the image button follow the caret.
2026-10-29 17:53:43 +01:00
Linus Rath
ee486077de
fix: name the recipient fields and let the keyboard reach and remove chips
2026-10-29 17:53:38 +01:00
Linus Rath
f23784a488
feat: open submenus, previews and the rail peek only on click when hover opening is off
2026-10-29 17:53:37 +01:00
Linus Rath
dcc504fcfa
feat: add landmarks, an h1 per app, skip links and F6 between panes
2026-10-29 17:53:35 +01:00
Linus Rath
13d697ddfb
feat: turn off every single-key shortcut when the setting is off
2026-10-29 17:53:34 +01:00
Linus Rath
368acca121
fix: stop app shortcuts from acting behind open dialogs and menus
2026-10-29 17:53:33 +01:00
Linus Rath
4586c69e72
feat: open text size, contrast and motion from anywhere with Alt+Shift+A
2026-10-29 17:53:33 +01:00
Linus Rath
8008393e59
feat: add an Accessibility page to Settings
...
Settings get a page of their own for accessibility, with presets on top
(screen reader, low vision, dyslexia, focus, keyboard and motor, motion
and seizure safe, deaf and hard of hearing) that change several options
at once and can be undone, then the options by topic, and a reset.
Text size used to be a fixed 14/16/18px on the root, which threw away
the size people set in their browser. It is now a percentage of the
browser's size, from 87.5% to 200%. Motion, contrast and transparency
follow the system by default and can be overridden either way; the
old Animations switch becomes Reduce motion. The visual options are
applied before the first paint, so the page no longer flashes at the
wrong size.
- `lib/accessibility-settings.ts`: the new settings, their allowed
values, and the code that writes them onto `<html>`
- `app/accessibility.css`: bundled fonts (Atkinson Hyperlegible Next,
Lexend, OpenDyslexic), text spacing, a focus outline that survives
Windows contrast themes, more-contrast colours on any theme, reduced
transparency, a large pointer
- admins can preset every new option but lock only shortcuts, send
confirmation and the notification duration; a lock on text size or
another reading aid works as a default
- always-light mail and toolbar labels now sync, and imports drop
values the page doesn't know
- font size and animations move off Appearance, the plain text font
off Reading; everyday settings such as conversation view and undo
send show on both their own page and Accessibility
2026-10-29 17:53:32 +01:00
Linus Rath
5eb6deb26c
fix: show password and two-factor settings after a password and TOTP sign-in #1432
2026-10-29 15:50:56 +01:00
Linus Rath
2dbe5d0244
fix: show a shared calendar in the color the server gives it #1414
2026-10-29 14:35:22 +01:00
Linus Rath
828d0acc0b
feat: offer this morning and this afternoon as schedule times while they are ahead #1390
2026-10-29 14:34:00 +01:00
Linus Rath
378b0e996c
fix: keep the browser's sign-in dialog away from uploads after the access token expired #1396
2026-10-29 14:32:27 +01:00
Linus Rath
e1b43c894f
fix: stop warning about failed checks on an invitation that passes dmarc #1403
2026-10-29 14:20:44 +01:00