Accessibility checks with axe in the browser tests (#291) #310

Merged
littlefox merged 5 commits from issue-291-axe into main 2026-10-23 13:24:29 +00:00
Owner

Closes #291

Accessibility checks with axe (@axe-core/playwright 4.13.0, pinned) in the browser tests:

  • e2e/tests/axe.ts: WCAG 2.1 A/AA; serious and critical findings fail (soft, so every view in a test is checked) unless on that view's list in axe-known.json, which only shrinks (empty); the rest are test annotations.
  • In the specs of the 0.7 views (thread list, thread chat, inbox and its chat, composer), and a11y.spec.ts for the others (login, reader, settings, directory, search, profile).
  • Fixed what it found: no page lang (now from the UI language); avatar initials and a chat bubble's time under 4.5:1; times that were buttons inside buttons (When { plain }); a profile listing its owner's user area as a post.
  • The thread chat announces new messages politely (role=log) and every message is reached with the keyboard.

Verified: full e2e suite 378 passed; lint with CI's three clippy commands; npm audit clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8

Closes #291 Accessibility checks with axe (`@axe-core/playwright` 4.13.0, pinned) in the browser tests: - `e2e/tests/axe.ts`: WCAG 2.1 A/AA; serious and critical findings fail (soft, so every view in a test is checked) unless on that view's list in `axe-known.json`, which only shrinks (empty); the rest are test annotations. - In the specs of the 0.7 views (thread list, thread chat, inbox and its chat, composer), and `a11y.spec.ts` for the others (login, reader, settings, directory, search, profile). - Fixed what it found: no page `lang` (now from the UI language); avatar initials and a chat bubble's time under 4.5:1; times that were buttons inside buttons (`When { plain }`); a profile listing its owner's user area as a post. - The thread chat announces new messages politely (`role=log`) and every message is reached with the keyboard. Verified: full e2e suite 378 passed; lint with CI's three clippy commands; npm audit clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Accessibility checks with axe in the browser tests (#291)
All checks were successful
ci / check (push) Successful in 8m27s
ci / desktop (push) Successful in 15m23s
ci / e2e (push) Successful in 36m50s
821650fbb7
axe now runs in the specs of the views 0.7 built (thread list, thread
chat, inbox, composer) and on the others: serious and critical findings
fail, unless on a view's list of known ones, which only shrinks (empty).
What it found is fixed: no page language, avatar initials and a chat
bubble's time below 4.5:1 contrast, times that were buttons inside
buttons, and a profile listing its owner's user area as a post. The
thread chat announces new messages politely and every message is
reached with the keyboard.

Closes #291

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Merge main into issue-291-axe
Some checks failed
ci / check (push) Successful in 10m3s
ci / desktop (push) Successful in 14m37s
ci / e2e (push) Failing after 37m55s
906a0d9d1b
Merge main into issue-291-axe; a chosen view stays chosen
All checks were successful
ci / check (push) Successful in 8m22s
ci / desktop (push) Successful in 18m17s
ci / e2e (push) Successful in 35m59s
58d5d9dac5
Working out a channel's default view could be started twice, and the
later one wrote its answer over a view the person had chosen meanwhile:
a click on "Trådar" undone a moment later. Seen as the giant list spec
failing on CI and, with 30 ms latency, here. A worked-out view now only
fills an empty slot.

Also: "Mina trådar" (#290, now on main) shows times as plain text, since
its rows are buttons, and its spec runs axe. A giant retry accepts the
view the first try saved.

Refs #291

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XJW2ocwLunyaLiUwCBHEP8
Merge remote-tracking branch 'origin/main' into issue-291-axe
All checks were successful
ci / check (push) Successful in 8m0s
ci / desktop (push) Successful in 14m30s
ci / e2e (push) Successful in 34m47s
fc143638d3
# Conflicts:
#	docs/ROADMAP.md
littlefox referenced this pull request from a commit 2026-10-24 13:23:56 +00:00
Sign in to join this conversation.
No description provided.