Test run report — DEMO-022 FAILED

Freight: accessibility scan (WCAG 2.1 AA)
run #344 · 2026-09-24 20:41:04 · duration 7s · target version 2.1.0 · browser chromium · started by: cli-adopted
report generated 2026-09-25 10:51:11 — self-contained file, safe to attach anywhere

What went wrong

AssertionError: WCAG 2.1 AA: 4 rule(s) broken (details: a11y-report.html)
  - Elements must meet minimum color contrast ratio thresholds [color-contrast]: 58 on every page
  - ARIA hidden element must not be focusable or contain focusable elements [aria-hidden-focus]: 5 on every page
  - <html> element must have a lang attribute [html-has-lang]: 5 on every page
  - <svg> elements with an img or image role must have alternative text [svg-img-alt]: 1 on home page

Step timings

atstepms
+0.76sgoto http://127.0.0.1:8000/demo/freight/169.9
+1.2swait_for_load_state networkidle440.1
+1.21sevaluate () => typeof window.axe === 'object'10.5
+1.37sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use160.4
+1.53sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va157.5
+1.53sscan: home page941.1
+1.62sgoto http://127.0.0.1:8000/demo/freight/track/?id=AF-10000185.4
+2.1swait_for_load_state networkidle486.1
+2.11sevaluate () => typeof window.axe === 'object'9.3
+2.25sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use135.1
+2.38sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va128.6
+2.38sscan: tracking845.7
+2.43sgoto http://127.0.0.1:8000/demo/freight/quote/?restart=154.0
+2.91swait_for_load_state networkidle481.4
+2.93sevaluate () => typeof window.axe === 'object'20.4
+3.09sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use159.6
+3.21sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va117.1
+3.21sscan: quote, step 1833.3
+3.33sgoto http://127.0.0.1:8000/demo/freight/login/118.8
+3.8swait_for_load_state networkidle470.6
+3.82sevaluate () => typeof window.axe === 'object'17.2
+3.97sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use152.8
+4.15sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va179.4
+4.15sscan: staff sign-in939.6
+4.22sgoto http://127.0.0.1:8000/demo/freight/login/71.3
+4.34sfill #username123.3
+4.45sfill #password106.3
+4.74sclick #login-btn293.6
+4.93swait_for_selector #signed-in-user182.5
+5.1sgoto http://127.0.0.1:8000/demo/freight/ops/173.7
+5.59swait_for_load_state networkidle489.1
+5.6sevaluate () => typeof window.axe === 'object'6.0
+5.69sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use99.1
+5.82sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va128.3
+5.82sscan: staff dashboard896.8

Full technical error

AssertionError: WCAG 2.1 AA: 4 rule(s) broken (details: a11y-report.html)
  - Elements must meet minimum color contrast ratio thresholds [color-contrast]: 58 on every page
  - ARIA hidden element must not be focusable or contain focusable elements [aria-hidden-focus]: 5 on every page
  - <html> element must have a lang attribute [html-has-lang]: 5 on every page
  - <svg> elements with an img or image role must have alternative text [svg-img-alt]: 1 on home page
Traceback (most recent call last):
  File "/opt/pw-testhub/app/core/harness/run_test.py", line 737, in main
    module.run(TimedPage(page, ctx), ctx)
  File "/opt/pw-testhub/data/tests/DEMO-022__freight_accessibility.py", line 37, in run
    audit.assert_clean()
  File "/opt/pw-testhub/data/tests/_lib/a11y.py", line 108, in assert_clean
    raise AssertionError(message)
AssertionError: WCAG 2.1 AA: 4 rule(s) broken (details: a11y-report.html)
  - Elements must meet minimum color contrast ratio thresholds [color-contrast]: 58 on every page
  - ARIA hidden element must not be focusable or contain focusable elements [aria-hidden-focus]: 5 on every page
  - <html> element must have a lang attribute [html-has-lang]: 5 on every page
  - <svg> elements with an img or image role must have alternative text [svg-img-alt]: 1 on home page

Video and Playwright trace stay on the hub: results/DEMO-022/20260924-204109-r344/ — open the run page for the replay.