3772 Commits
Author SHA1 Message Date
Linus Rath 06b18e1fa0 chore: release 1.19.0 1.19.0 2026-10-29 21:23:14 +01:00
Linus Rath 605a3983b1 feat: show a warning shield instead of the sender icon when the sender check fails 2026-10-29 21:13:36 +01:00
Linus Rath ed988a2aae ci: keep the a11y guard out of lint and vitest and mock narrowerThan in attachment tests 2026-10-29 21:08:59 +01:00
Linus Rath c0fb427eec feat: tick a row from anywhere beside its avatar or checkbox #1381 2026-10-29 20:53:52 +01:00
Linus Rath 50b3ddccec feat: let admins keep the refresh token valid on sign-out so Stalwart keeps the consent #1388 2026-10-29 20:47:18 +01:00
Linus Rath f1d6b3b815 Merge branch 'main' of https://github.com/bulwarkmail/webmail 2026-10-29 20:28:40 +01:00
Linus Rath 2e6dcceebb Merge pull request #1358 from illuwa-soft/fix/full-height-app-page
fix: honor full-height app-page slots
2026-10-29 20:27:00 +01:00
Linus Rath 357b6af3c9 feat: offer to remove a cancelled meeting from the calendar in the cancellation mail #1425 2026-10-29 20:24:27 +01:00
Linus Rath 0b4e501142 feat: make the login email placeholder configurable #1423 2026-10-29 20:24:26 +01:00
Linus Rath be28fb8ed7 fix: keep the production build's type check within 2 GB of memory #1431 2026-10-29 20:11:08 +01:00
Linus Rath a225109400 fix: keep the open folder when clearing search filters #1430 2026-10-29 20:11:08 +01:00
Linus Rath d875714f35 feat: offer remember me on the sso-only login and apply it to every sso path #1437 2026-10-29 20:06:44 +01:00
Linus Rath b25e738a3e fix: give calendar default alerts account-wide unique ids #1435 2026-10-29 20:06:16 +01:00
Linus Rath e363427d0e fix: decode escaped colons in imported vcard notes #1438 2026-10-29 20:06:16 +01:00
Linus Rath a78d03a18d fix: color attachment icons by file type in the reader like in the list 2026-10-29 20:06:15 +01:00
Linus Rath 5dfc958723 fix: stop a mail's own body overflow from adding a second scrollbar in the reader 2026-10-29 20:06:15 +01:00
Linus Rath 47bfd754f7 ci: check the main screens for accessibility regressions on every push
A Playwright job on the perf guard's production build runs axe-core's
WCAG 2.2 A/AA rules on the mail list, reading pane, composer, calendar,
contacts and Settings > Accessibility, and fails when a screen has more
serious or critical violations than scripts/a11y-guard/budget.json
allows (all zero today). Two more checks cover what axe can't see: the
keyboard focus outline stays visible in Windows contrast themes, and
single-key shortcuts don't act on the mail behind an open dialog.

axe-core is vendored next to the spec (MPL-2.0, see NOTICE), so the
check adds no dependency. `A11Y_GUARD_UPDATE=1 npm run test:a11y-guard`
rewrites the budget.
2026-10-29 20:02:10 +01:00
Linus Rath 2e13accade fix: draw avatar initials in black or white so they read on every colour 2026-10-29 19:59:16 +01:00
Linus Rath d552a3bb86 fix: give the message preview full contrast and the conversation toggle a 24px target 2026-10-29 19:53:58 +01:00
Linus Rath 6a54fcc5af test: give the phone settings test the media query helper 2026-10-29 19:38:46 +01:00
Linus Rath 2c3292e980 fix: size the policy page's small text in rem 2026-10-29 19:38:46 +01:00
Linus Rath a86023787f fix: give Aurora Glass solid surfaces, menus and dialogs when transparency is reduced 2026-10-29 19:38:46 +01:00
Linus Rath 12676f247e fix: let the spam game's inbox flash at most three times a second 2026-10-29 19:38:46 +01:00
Linus Rath 597b546e11 fix: keep the calendar period title readable at 320px wide 2026-10-29 19:38:45 +01:00
Linus Rath 35be105a73 fix: size small text in rem so it follows the browser and app text size 2026-10-29 19:38:45 +01:00
Linus Rath 7f74fcf9bf fix: move toasts away from the focused control and keep focus clear of sticky headers inside panes 2026-10-29 19:38:45 +01:00
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 f43eb9f41a fix: give chip remove buttons, tree expanders, task circles and month events a 24px target 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 6ca53f24cd fix: line up settings tabs with the search field 2026-10-29 19:17:36 +01:00
Linus Rath be423637fc feat: show one column and an optional paged message list in simple mode 2026-10-29 19:14:41 +01:00
Linus Rath 6e45d754f9 fix: keep pushed notifications silent while do not disturb is on 2026-10-29 19:10:30 +01:00
Linus Rath ed3f7fabba test: count the reader's accessibility controls in the render budget 2026-10-29 19:09:12 +01:00
Linus Rath 8333870c82 fix: keep a click on a message row from costing an extra render 2026-10-29 19:01:36 +01:00
Linus Rath f24c481839 fix: accept the SVG namespace of the large mouse pointer in the Lite bundle scan 2026-10-29 18:58:12 +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 8e201954b4 fix: make the message list one Tab stop that screen readers read row by row
The list was a stack of clickable divs. Screen readers heard nothing when
j or k moved the selection, every row added several Tab stops (Compose
sat 253 Tabs from the top), and a deleted message left the focus on the
page.

The list is now a treegrid named "Messages": one Tab stop, rows named in
one sentence (unread, sender, subject, date, flags, and the preview when
that setting is on), conversations with aria-expanded and their
messages a level down, position and list size on every row. j, k and the
arrows move the focus with the selection, Space ticks a row, Enter opens
it, Shift+F10 or the menu key opens its actions, and after a delete the
focus lands on the next row. With the actions button setting on, each
row shows a button for the same menu, for pointers that can't hover or
right-click.
2026-10-29 18:53:05 +01:00
Linus Rath 8b85f63c75 fix: label the value a locked setting gives users 2026-10-29 18:28:32 +01:00
Linus Rath 38f7edf02f fix: give the help links in the account menu icons like the other rows 2026-10-29 18:28:32 +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 48a2b596d5 feat: name the locks and defaults a policy file import changes 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 4aa8d09198 fix: keep glossary buttons out of heading names 2026-10-29 18:10:29 +01:00
Linus Rath bc60638c17 test: cover plain language in the Lite export 2026-10-29 18:10:29 +01:00