Test run report — DEMO-022 FAILED

Freight: accessibility scan (WCAG 2.1 AA)
run #341 · 2026-09-24 20:40:49 · duration 6s · target version 2.0.0 · browser chromium · started by: cli-adopted
report generated 2026-09-25 11:39:56 — 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/163.6
+1.2swait_for_load_state networkidle438.4
+1.21sevaluate () => typeof window.axe === 'object'11.0
+1.37sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use158.4
+1.53sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va160.6
+1.53sscan: home page934.6
+1.62sgoto http://127.0.0.1:8000/demo/freight/track/?id=AF-10000190.6
+2.1swait_for_load_state networkidle480.4
+2.11sevaluate () => typeof window.axe === 'object'5.7
+2.21sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use97.5
+2.3sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va90.3
+2.3sscan: tracking765.6
+2.33sgoto http://127.0.0.1:8000/demo/freight/quote/?restart=133.8
+2.82swait_for_load_state networkidle494.5
+2.83sevaluate () => typeof window.axe === 'object'5.1
+2.93sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use95.2
+2.98sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va58.8
+2.98sscan: quote, step 1688.1
+3.02sgoto http://127.0.0.1:8000/demo/freight/login/30.8
+3.51swait_for_load_state networkidle491.5
+3.51sevaluate () => typeof window.axe === 'object'6.7
+3.63sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use118.0
+3.71sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va73.2
+3.71sscan: staff sign-in720.9
+3.73sgoto http://127.0.0.1:8000/demo/freight/login/28.4
+3.79sfill #username51.7
+3.83sfill #password45.9
+3.95sclick #login-btn120.4
+4.09swait_for_selector #signed-in-user136.2
+4.23sgoto http://127.0.0.1:8000/demo/freight/ops/146.1
+4.67swait_for_load_state networkidle436.1
+4.7sevaluate () => typeof window.axe === 'object'26.5
+4.85sevaluate /*! axe v4.13.0 * Copyright (c) 2015 - 2026 Deque Systems, Inc. * * Your use154.7
+5.06sevaluate async (tags) => { const r = await axe.run(document, {runOnly: {type: 'tag', va209.1
+5.06sscan: staff dashboard973.2

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-204053-r341/ — open the run page for the replay.