Skip to content
https://www.theguardian.com

Accessibility

· 22 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.
SCORE
84
GRADE
B
FIX
3
REVIEW
5
PASS
14
INFO
0
Checks
22
14 PASS 5 REVIEW 3 FIX
D
Tabindex Anti-Patterns
Action
0 positive, 86 -1-on-focusable
FIX
0 positive, 86 -1-on-focusable
Info::
tabindex="-1" on naturally-focusable <input id="header-nav-input-checkbox">
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <input id="News-checkbox-input">
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <input id="Opinion-checkbox-input">
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <input id="Sport-checkbox-input">
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <input id="Culture-checkbox-input">
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <input id="Lifestyle-checkbox-input">
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <input id="gu-search">
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <button>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <input id="gu-search">
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <button>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
Info::
tabindex="-1" on naturally-focusable <a>
tabindex="-1" removes an element from the keyboard tab order. Naturally-focusable elements (links, buttons, form controls) become unreachable for keyboard users. (Common false-positive: hidden honeypot fields. Verify the element is genuinely interactive before removing the tabindex.)
D
Dark Mode Support
Action
Theme color only
FIX
Theme color only
Info::
Theme-color present but no dark variant
A theme-color is set but no dark-specific variant was found. The browser toolbar may not adapt for dark mode users.
Got: #052962
Info::
No dark mode signals detected
Consider adding CSS with @media (prefers-color-scheme: dark) and <meta name='color-scheme' content='light dark'>.
Info::
Detection limited to meta tags and inline styles
External CSS files may contain prefers-color-scheme rules not visible to this scan.
Dark ModePartial Dark Mode
color-scheme meta Not set Dark theme-color Not set CSS indicators Not detected

Detection limited to meta tags and inline styles.

D
Navigation UX
Action
2 navigation pattern(s)
FIX
2 navigation pattern(s)
Info::
Skip navigation link detected
Info::
Back-to-top link detected
Info::
1 navigation landmark(s) detected
Breadcrumbs
Search
Skip Link Skip link detected
Labeled Navigation 1 <nav> element(s)
Back to Top
Hamburger Menu
Sticky Navigation Cannot reliably detect (CSS-based)
3 of 6 testable patterns navigation patterns detected. Strong navigation UX with multiple discovery paths.
B
Heading Hierarchy
198 headings
REVIEW
198 headings
Critical::
No H1 heading found
Every page should have one H1 that describes the page content.
  • H3 ‘Odds not in our favour’Doomsday Clock setters on the future of humanity
  • H3 Infected, at seaHow the deadly virus turned a dream cruise into tragedy
  • H3 Venice BiennaleWhat not to miss at the 2026 exhibition
  • H3 Blind date‘I hope my handshake wasn’t too much of a red flag’
  • H3 FootballMadrid’s shambolic fight club braced for Barcelona
  • H3 'Screwed each other'Tensions emerge in Netanyahu-Trump alliance
  • H2 News
  • H3 UkraineRussia and Ukraine confirm three-day ceasefire from 9 May
  • H3 Russia-Ukraine war at a glanceZelenskyy ‘hereby decrees’ Moscow can hold Victory Day parade
  • H3 Russia-Ukraine war at a glanceZelenskyy ‘hereby decrees’ Moscow can hold Victory Day parade
  • H3 US-Israel war on IranUS awaiting response from Iran over proposals for ceasefire deal, says Rubio
  • H3 Trump administration briefingRepublicans dominating redistricting fight across several states before midterms
  • H3 Exclusive‘Everything went black. Then fire poured down’: one man’s terror onboard a ship hit in the Iran war
  • H3 UK electionsMost Labour members think Starmer cannot revive party fortunes, poll finds
  • H3 2026 elections mappedHow Labour lost ground in different directions
  • H3 Scottish politicsFirst minister urges Starmer to show Scotland ‘greater respect’ after SNP victory
  • H3 Reform UKNigel Farage hails ‘historic shift in politics’ after Reform UK election gains
  • H3 PoliticsHow Labour’s ‘terrible’ night unfolded as Reform surges and Greens and Lib Dems hail wins
  • H3 HantavirusEvacuation of hantavirus-stricken cruise ship could face delays due to bad weather
  • H3 ScienceHantavirus misinformation runs rampant as the US is unequipped to respond to infectious disease health scare
  • H3 USPentagon releases first batch of previously secret files documenting reports of UFOs
  • H3 US newsFlorida surgeon ‘devastated’ over death of patient after removing liver instead of spleen
  • H3 Stocking up Worried Britons ‘prepping’ for major disruption with stash of tins and cash, survey shows
  • H3 HungaryTurning the page on Orbán’s rule: Magyar to be sworn in as Hungary PM
  • H3 DenmarkGreenlandic woman wins case against Danish authorities who removed her two-hour-old child
  • H2 The Saturday read
  • H3 Infected, at sea: how the deadly hantavirus turned a dream cruise into tragedy
  • H2 In focus
  • H3 US-Israel relationship‘They have screwed each other pretty badly’: tensions emerge in Netanyahu-Trump alliance
  • H3 FranceFrance has a record number of presidential hopefuls. Will any of them be able to hold back the far right?
  • H3 Norway‘We are talking about energy security for Europe’: Norway doubles down on oil and gas production
  • H2 Features
  • H3 Doomsday Clock‘The odds are not in our favour’: who sets the Doomsday Clock – and what can they tell us about the future of humanity?
  • H3 Blind dateBlind date: ‘I hope my handshake wasn’t too much of a red flag’
  • H2 More features
  • H3 Venice Biennale 2026What not to miss at the 2026 Venice Biennale
  • H3 Venice Biennale 2026What does a woman swimming in urine tell us about the state of the world? Lots! – Venice Biennale review
  • H3 TravelCocktails, sunsets and freshly caught seafood: 27 of the best beach bars and cafes in Europe
  • H3 The Tim Dowling columnI’ve come to respect the fox. But our dog is still a hardliner
  • H3 The Guide Everyday Hollywood film comedies have faded but can they make a comeback?
  • H3 My cultural awakeningAh, ah, ah, ah - I saved my dad’s life with a little help from The Office and the Bee Gees
  • H3 ‘A true pinch-me moment’Memories of David Attenborough as he turns 100
  • H3 TelevisionHappy centenary, David! Attenborough’s 100 most spectacular TV moments
  • H2 The long read
  • H3 How to survive the information crisis: ‘We once talked about fake news – now reality itself feels fake’
  • H2 Sport
  • H3 double quotation markInto the Ronaldo-verse: sludge of content is eating up sport and the adults are to blame
  • H3 Sports quiz of the weekFeaturing the Champions League, Wu Yize, Giro d'Italia and F1 winners
  • H3 Sports quiz of the weekFeaturing the Champions League, Wu Yize, Giro d'Italia and F1 winners
  • H3 Matchday liveManchester City look to stay in title hunt, Liverpool host Chelsea, EFL playoffs buildup
  • H3 FootballHow did league champions Liverpool and Club World Cup winners Chelsea fall so far?
  • H3 BournemouthHow Kroupi became the next jewel … and a World Cup bolter
  • H3 InterviewBrentford’s Kayode: ‘I don’t play just because I have a long throw – you have to watch me’
  • H3 double quotation markTennis slams’ refusal to discuss money is slap in face for players. They are right to threaten boycott
  • H3 TennisDjokovic accepts ‘new reality’ after returning with defeat at Italian Open
  • H3 TennisDe Minaur’s form slump continues in racket-smashing exit at Italian Open
  • H3 double quotation markMadrid’s shambolic fight club braced for Barcelona to land knockout blow
  • H3 Football DailyReal Madrid and some truly toxic vibes. Next up … El Clásico
  • H3 Serie A‘We bring in hungry, humble players’: How Fàbregas is leading the rise of Como
  • H3 double quotation markWest Ham on brink a decade after David Sullivan announced his ‘big club’ feelings
  • H3 ArsenalArteta urges Gunners to ‘channel energy’ in right way with title in sight
  • H3 The run-inSeven games that will decide whether Arsenal or City win the title
  • H3 Premier LeagueTeam news: predicted lineups for the weekend action
  • H2 More sport
  • H3 FootballSouthampton charged with misconduct by EFL in Middlesbrough ‘spying’ row
  • H3 FootballBournemouth drop Jiménez amid investigation into social media posts
  • H3 NRLMelbourne coach Bellamy tight-lipped over Storm future amid ‘private’ illness
  • H3 Formula OneF1 agrees to engine changes from next season after widespread criticism
  • H2 Opinion
  • H3 Charlotte Higginsdouble quotation markAt the Venice Biennale I saw anger at Russia and Israel – and its leadership pretending everything was fine
  • H3 Europedouble quotation markAI will make language barriers disappear – and diminish our understanding of other cultures
  • H2 More opinion
  • H3 double quotation markThe hill I will die on: Voice notes have made my generation a bunch of self-absorbed bores
  • H3 double quotation markThese election results don’t mean tacking left or right, but delivering for the whole of the UK
  • H3 Becky Barnicoat on millennial lifeA recipe for disaster
  • H3 double quotation markAI-powered surveillance company Palantir created a chore coat. Great, now I have no choice but to burn mine
  • H2 Editorials
  • H3 The Guardian viewBritain’s fractured politics: a revolt against the status quo
  • H3 The Guardian view Writers’ retirements: the sense of an ending
  • H2 Cartoon
  • H3 The Saturday cartoonVaughan Tomlinson on wisdom being passed down through the generations
  • H2 More top stories
  • H3 AntisemitismIn a hushed room, personal testimonies reveal Australia’s troubling rise in antisemitism
  • H3 ArtSeveral Venice Biennale pavilions shut in protest over inclusion of Israel
  • H3 US militaryStrike on vessel in eastern Pacific kills two people, leaving one survivor
  • H3 VenezuelaFrustrated by Iran, Trump at last seizes enriched uranium – but from Venezuela
  • H3 Charlie Kirk shootingCameras to be allowed in courtroom in Charlie Kirk killing case, judge rules
  • H2 Climate crisis & environment
  • H3 Climate crisisInequality causing 100,000 extra deaths a year from heat and cold in Europe
  • H3 The alternatives‘A share in the delight’: the people investing in the UK’s first community-owned solar battery
  • H3 Weather trackerColorado experiences rare spring snowstorm
  • H3 Down to EarthHow one man’s mission to clear dumped boats inspired Guardian readers
  • H2 UK news
  • H3 UK newsBarrister says ‘dead woman was put on trial’ after husband cleared of manslaughter in UK
  • H3 UKMan pleads not guilty to threatening Andrew Mountbatten-Windsor
  • H3 HantavirusThird Briton has suspected hantavirus linked to cruise ship outbreak
  • H3 SlaveryStory of enslaved boy featured in 1748 Joshua Reynolds portrait emerges in new study
  • H2 World news
  • H3 CanadaCanadian high school where deadly mass shooting occurred to be torn down
  • H3 USWhite House calls Mark Hamill ‘sick’ for posting AI image of Trump in a grave
  • H3 HaitiFour south Florida men convicted in Haitian president’s assassination
  • H3 USSmall Georgia town rehires local police after mayor fired entire department
  • H2 Culture
  • H3 The undergroundPunching the light: Sydney’s 90s raves – in pictures
  • H3 MusicSplit Enz tease new album ahead of first tour in 17 years: ‘We’d make a really good record now’
  • H2 What to watch
  • H3 Television‘This priest was so fit’: Keeley Hawes and Paapa Essiedu on nuns, hot clerics and their tale of forbidden passion
  • H3 TV reviewMIA review – the creator of Ozark’s new drama is as subtle as being mauled by a 12ft alligator
  • H3 Film Guillermo del Toro: ‘When you see a UFO, it causes a crack. The mystery of the universe rushes towards you’
  • H3 The watcherWrestling With Trump: a fascinating look at how Trump’s political style is inspired by WWE wrestling
  • H2 What to listen to
  • H3 MusicCharli xcx: Rock Music review – is she really pivoting from pop? Don’t be so sure …
  • H3 Music‘We’re not Lady Gaga and Elton John’: unmasking Angine de Poitrine, the year’s buzziest, dottiest band
  • H3 Paul SimonPaul Simon review – at 84, back on stage after hearing loss, his resolute artistry is inspiring
  • H3 Add to playlistThe magnetic, uncanny songwriting of Frances Chang and the week’s best new tracks
  • H2 What to read
  • H3 The books of my lifeLily King: ‘I couldn’t get past the first 20 pages of Pride and Prejudice’
  • H3 Science fiction roundupThe best recent science fiction, fantasy and horror – review roundup
  • H3 Book of the dayThis Book May Cause Side Effects by Helen Pilcher review – can you think yourself sick?
  • H3 DH LawrenceLady C by Guy Cuthbertson review – how Lady Chatterley’s Lover rocked Britain
  • H2 What to play
  • H3 Games‘Nurse, the joypad!’: the eight greatest medical video games
  • H3 GamesMixtape review – tongues, trolleys and classic 90s tracks celebrate teenage misadventure
  • H3 Games‘We’re remixing her library for a new medium’: the video games capturing the happy-sad spirit of Tove Jansson’s Moomins
  • H3 Pushing ButtonsLicence to thrill: could 007 First Light be the best Bond game since GoldenEye?
  • H2 More culture
  • H3 The week in reviewsAmandaland to Olof Dreijer: the week in rave reviews
  • H3 double quotation markStar Wars has to deliver a proper movie with The Mandalorian and Grogu – otherwise the franchise is dead
  • H3 Art‘I told his family he was HIV positive’: Keith Haring’s best friend on life with the artist as unseen works go on show
  • H3 PhotographyThe week in wildlife: a chonky sea lion, amorous toads and an adorable gosling
  • H2 Lifestyle
  • H3 The quizWhat links Run Lola Run, Source Code and Groundhog Day? The Saturday quiz
  • H3 The kids' quizWhy can’t wasps swim and which shark is fastest? The kids’ quiz
  • H3 Well actuallyI didn’t think I could get addicted to weed. I was wrong – and I’m not alone
  • H2 Food
  • H3 Meera Sodha recipesChopped broad bean trofie with mint and lemon
  • H3 The good mixerCocktail of the week: Le Magritte’s bitter velvet – recipe
  • H3 The sweet spotBenjamina Ebuehi’s recipe for Mexican-style vanilla bean flan
  • H3 Restaurants‘Restaurants won’t survive’: Michelin chef opens venues abroad to withstand UK taxes
  • H2 Fashion & beauty
  • H3 DesignSoft armour, pert nipples: how London design team made Kim Kardashian’s Met Gala breastplate
  • H3 FashionWhy is Silicon Valley suddenly obsessed with being tasteful?
  • H3 What to wear...Living on the edge: what to wear with a lace-trimmed skirt
  • H3 Met GalaBody as masterpiece: nipples, skeletons and tattoos dominate at record-breaking Met Gala
  • H2 Relationships
  • H3 RelationshipsWhen women choose non-monogamy: ‘It’s an opportunity for more integration’
  • H3 Well actually‘Do you think I’m a cougar?’: five influencer couples on their age-gap relationships
  • H3 You be the judgeShould my flatmate stop using my details to sign up for free trials?
  • H3 The moment I knew‘We didn’t speak the same language but somehow we understood each other’
  • H2 Health & fitness
  • H3 SkincareProduct overload! Has your skincare routine gone too far?
  • H3 The expertsHow to save a life: paramedics on emergency first aid – from cardiac arrest to burns to seizures
  • H3 FitnessDo women need to exercise differently from men – and ease up on cardio after 40?
  • H3 Well actuallyFrom ‘it helped me stick to a routine’ to ‘I despise it’: 11 people explain how they’re using AI for fitness
  • H2 More lifestyle
  • H3 Readers' travel tips‘No reservations, no waiter, just great sea views, food and drink’: readers’ favourite beach bars in Europe
  • H3 ExperienceI am the best lightsaber fighter in Europe
  • H3 HomesFrom cramped coach house to family home – how clever design transformed this tiny space
  • H3 CrosswordsCan you solve our special 30,000th cryptic crossword?
  • H2 You may have missed
  • H3 US immigrationRevealed: The Trump administration arrested the parents of at least 27,000 kids in seven months, ICE records show
  • H3 UkraineMeeting ‘Madyar’: the Ukrainian drones boss raining on Putin’s parade
  • H3 Building powerThe Trump administration is deleting government data. From infant deaths to hunger, here are five ways it’s hurting Americans
  • H2 Take part
  • H3 TravelTell us: has your flight been cancelled?
  • H3 AI (artificial intelligence)Tell us: have you become emotionally attached to AI?
  • H3 MoneyTell us: how are you adjusting your household finances as the Iran war pushes up costs?
  • H3 The kids' quizDoes your child have a question for our kids’ quiz?
  • H2 Newsletters
  • H3 NewsSign up for the First Edition newsletter
  • H3 FootballSign up for the Football Daily newsletter
  • H3 FoodSign up for the Feast newsletter
  • H3 CultureSign up for The Long Wave newsletter: our weekly Black life and culture email
  • H2 In pictures
  • H3 PhotographyThe week around the world in 20 pictures
  • H2 Most popular
  • H3 Most viewed
  • H4 ‘They have screwed each other pretty badly’: tensions emerge in Netanyahu-Trump alliance
  • H4 Greenlandic woman wins case against Danish authorities who removed her two-hour-old child
  • H4 Ukraine war briefing: Zelenskyy ‘hereby decrees’ Moscow can hold Victory Day parade
  • H4 Russia and Ukraine confirm three-day ceasefire from 9 May
  • H4 Evacuation of hantavirus-stricken cruise ship could face delays due to bad weather
  • H4 ‘We are talking about energy security for Europe’: Norway doubles down on oil and gas production
  • H4 US awaiting response from Iran over proposals for ceasefire deal, says Rubio
  • H4 France has a record number of presidential hopefuls. Will any of them be able to hold back the far right?
  • H4 double quotation markAI will make language barriers disappear – and diminish our understanding of other cultures
  • H4 Meeting ‘Madyar’: the Ukrainian drones boss raining on Putin’s parade
  • H3 Deeply read
  • H4 Infected, at sea: how the deadly hantavirus turned a dream cruise into tragedy
  • H4 Tim Dowling: I’ve come to respect the fox. But our dog is still a hardliner
  • H4 double quotation markTrump’s looming defeat in Iran is a personal and political crisis
  • H4 2026 elections mapped: how Labour lost ground in different directions
  • H4 ‘They have screwed each other pretty badly’: tensions emerge in Netanyahu-Trump alliance
  • H4 Blind date: ‘I hope my handshake wasn’t too much of a red flag’
  • H4 How did league champions Liverpool and Club World Cup winners Chelsea fall so far?
  • H4 Jess Cartner-Morley’s May style essentials: summer totes, chic shirts and the best shoes of the year so far
  • H4 Madrid’s shambolic fight club braced for Barcelona to land knockout blow
  • H4 West Ham on brink a decade after David Sullivan announced his ‘big club’ feelings

Every page should have one H1 that describes the page content.

Why this matters

No H1 means screen-reader users can't identify the page's primary topic, and Google's content-extraction degrades.

Learn more

The H1 is the document title for assistive tech and a strong signal to search engines about page topic. Pages without one force screen readers to fall back to the <title> attribute or page chrome. Add a single H1 that names the page's primary subject.

Source: WCAG 2.4.6 / Google Search Central

C
404 Error Page
Action
HTTP 404, custom page
REVIEW
HTTP 404, custom page
Info::
Correct 404 status code returned
Got: HTTP 404
Info::
Custom styled 404 page
Info::
Homepage link present on 404 page
404 Page Quality Custom 404 Page
Status Code HTTP 404 Page Title Page Not Found | The Guardian Custom Styling Navigation Homepage Link Search Form
B
Web Manifest
Valid manifest
REVIEW
Valid manifest
Info::
Name present: The Guardian
Info::
192x192 icon present
Info::
512x512 icon present
PWA Install Criteria Not Installable
Name The Guardian 192×192 icon 512×512 icon Start URL https://www.theguardian.com/ Display Mode browser
Name The Guardian Display Mode browser Theme Color #052962 Background Color #052962 Icons 6 icon(s)
B
PWA Depth
2 PWA signal(s) surfaced
REVIEW
2 PWA signal(s) surfaced
Warning::
Manifest declares display="browser" -- no PWA UX
When `display` is `browser` (or unset, which is the spec default), the installed app opens in a regular browser tab -- no install prompt, no standalone window, no app-shell experience. The intended values for a PWA are `standalone` (most common; full-screen, no browser chrome) or `fullscreen` (games / immersive apps). `minimal-ui` is a middle ground (basic browser controls but no address bar).
Info::
Manifest has no maskable icon
Android 12+ Adaptive Icons crop non-maskable icons to a circle or squircle -- frequently hiding important parts of the logo. Add at least one icon entry with `"purpose": "maskable"` (or `"any maskable"`) and a maskable-aware design (16% safe-zone padding around the inner mark).
C
Color Contrast (Screenshot)
Action
20 text elements analyzed, 20 fail WCAG AA
REVIEW

Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.

0 pass 20 fail WCAG AA
h2 News
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 The Saturday read
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 In focus
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 Features
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 More features
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 The long read
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 Sport
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 More sport
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 Opinion
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 More opinion
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 Editorials
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 Cartoon
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 More top stories
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 Climate crisis & environment
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 UK news
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 World news
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 Culture
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 What to watch
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 What to listen to
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
h2 What to read
1.50:1
#000000
on
#052962
needs 3.0:1 (large text)
24px · bottom of viewport
Show all checked elements (20)
ElementRatioRequiredFGBGResult
h2 News1.50:13.0:1
#000000
#052962
Fail
h2 The Saturday read1.50:13.0:1
#000000
#052962
Fail
h2 In focus1.50:13.0:1
#000000
#052962
Fail
h2 Features1.50:13.0:1
#000000
#052962
Fail
h2 More features1.50:13.0:1
#000000
#052962
Fail
h2 The long read1.50:13.0:1
#000000
#052962
Fail
h2 Sport1.50:13.0:1
#000000
#052962
Fail
h2 More sport1.50:13.0:1
#000000
#052962
Fail
h2 Opinion1.50:13.0:1
#000000
#052962
Fail
h2 More opinion1.50:13.0:1
#000000
#052962
Fail
h2 Editorials1.50:13.0:1
#000000
#052962
Fail
h2 Cartoon1.50:13.0:1
#000000
#052962
Fail
h2 More top stories1.50:13.0:1
#000000
#052962
Fail
h2 Climate crisis & env…1.50:13.0:1
#000000
#052962
Fail
h2 UK news1.50:13.0:1
#000000
#052962
Fail
h2 World news1.50:13.0:1
#000000
#052962
Fail
h2 Culture1.50:13.0:1
#000000
#052962
Fail
h2 What to watch1.50:13.0:1
#000000
#052962
Fail
h2 What to listen to1.50:13.0:1
#000000
#052962
Fail
h2 What to read1.50:13.0:1
#000000
#052962
Fail

Methodology: The top 20 text elements by font size were checked. Background color was sampled from the desktop screenshot using a 5-point pattern. WCAG 2.1 AA requires 4.5:1 for normal text and 3:1 for large text.

A
Landmark Structure
141 landmarks
PASS
141 landmarks
Info::
<main> landmark present
Info::
1 <nav> landmark(s) found
Info::
Skip navigation link present
Warning::
Skip link target(s) don't exist on page: #navigation
The skip-link anchor (e.g., `href="#main"`) points at an ID that has no corresponding element on the page. Activating the link does nothing -- a silent WCAG 2.4.1 failure that the visual link presence hides. Add `id="main"` (or whichever matches the href) to the target landmark.
Page Structure — as a screen reader sees it
BANNER header NAV MAIN ASIDE CONTENTINFO footer

The skip-link anchor (e.g., `href="#main"`) points at an ID that has no corresponding element on the page. Activating the link does nothing -- a silent WCAG 2.4.1 failure that the visual link presence hides. Add `id="main"` (or whichever matches the href) to the target landmark.

Why this matters

Skip link points at an ID that doesn't exist on the page. The link looks fine visually but does nothing when activated -- silent WCAG 2.4.1 failure.

Learn more

Find the target landmark (typically <main> or the first <h1>) and add `id="..."` matching the skip link's href fragment. Test by tabbing to the skip link and pressing Enter -- focus should jump to the target.

Source: WCAG 2.1 SC 2.4.1

A
Alt Text Quality
All 109 images OK
PASS
All 109 images OK
Info::
12 image(s) with alt text over 125 characters
Info::
3 decorative image(s) correctly marked
Info::
94 image(s) with good alt text
109 images 94 good alt text 3 decorative
IssueCount
too long12 image(s)
A+
Form Accessibility
No form controls
PASS
No form controls
Info::
No form controls on this page
No form controls found.
A+
Form Input Types
No form controls on this page
PASS
No form controls on this page
Info::
No form controls on this page
A+
Form Input Quality
No form controls on this page
PASS
No form controls on this page
Info::
No form controls on this page
A+
Mobile Keyboard & Autofill
No form controls -- mobile keyboard check is N/A
PASS
No form controls -- mobile keyboard check is N/A
Info::
No form controls on this page
A+
Document Language
Lang attribute set to "en"
PASS
Lang attribute set to "en"
Info::
<html lang="en"> is set and valid
Got: en
A
Iframe Accessibility
1/2 iframe(s) missing title; 0 placeholder(s)
PASS
1/2 iframe(s) missing title; 0 placeholder(s)
Warning::
<iframe> missing title attribute (src="")
WCAG 4.1.2: iframes need a title attribute so screen readers can announce what's embedded. Without one, the announcement is just "iframe" -- the user has no way to decide whether to enter or skip.
A+
Tap Target Adequacy
All tap targets meet WCAG 2.5.5/2.5.8 sizing
PASS
All tap targets meet WCAG 2.5.5/2.5.8 sizing
Info::
All tap targets meet WCAG 2.5.5 (44x44px) sizing
A+
Mobile-Readable Font Sizes
All 535 visible text node(s) render at >= 12 CSS pixels
PASS
All 535 visible text node(s) render at >= 12 CSS pixels
Info::
All text uses legible mobile font sizes (>= 12 CSS px)
A
Favicon & Branding
13 icon(s) detected
PASS
13 icon(s) detected
Info::
favicon.ico present at site root
Info::
HTML icon links detected
Info::
Apple touch icon present
Info::
SVG favicon detected — scales perfectly to any size
Info::
Multiple icon sizes detected
favicon.ico Present
PNG Icons Present
Apple Touch Present
SVG Favicon Present
Manifest Icons Present
Multiple Sizes Present
A+
Print Stylesheet
Print styles detected
PASS
Print styles detected
Info::
External print stylesheet detected
Got: https://assets.guim.co.uk/static/frontend/css/print.css
Print Stylesheet Print Optimized
Print stylesheet https://assets.guim.co.uk/static/frontend/css/print.css Inline @media print Not detected
A
Lighthouse Accessibility Audits
Score 93/100 — 2 failing, 34 passed
PASS
93

Accessibility

These checks highlight opportunities to improve the accessibility of your web app. Automatic detection can only detect a subset of issues and does not guarantee the accessibility of your web app, so manual testing is also encouraged.

ARIA

Some ARIA parent roles must contain specific child roles to perform their intended accessibility functions. Learn more about roles and required children elements.

Why this matters

Performance issues directly impact user engagement and conversion rates.

Failing Elements
News Opinion Sport Culture Lifestyle Search input google-search Search Support … div#header-expanded-menu > div.dcr-1srap2j > div.dcr-1ndqjmr > ul.dcr-6sl420

These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.

Tables and lists

Screen readers have a specific way of announcing lists. Ensuring proper list structure aids screen reader output. Learn more about proper list structure.

Why this matters

Performance issues directly impact user engagement and conversion rates.

Failing Elements
‘Odds not in our favour’ Doomsday Clock setters on the future of humanity Infec… div.dcr-1ykr3rf > gu-island > div.dcr-1beghel > ul.dcr-1tj3ydw

These are opportunities to improve the experience of reading tabular or list data using assistive technology, like a screen reader.

Interactive controls are keyboard focusable
Interactive elements indicate their purpose and state
The page has a logical tab order
Visual order on the page follows DOM order
User focus is not accidentally trapped in a region
The user's focus is directed to new content added to the page
HTML5 landmark elements are used to improve navigation
Offscreen content is hidden from assistive technology
Custom controls have associated labels
Custom controls have ARIA roles
`[aria-*]` attributes match their roles
`[aria-hidden="true"]` is not present on the document `<body>`
`[role]`s have all required `[aria-*]` attributes
`[role]`s are contained by their required parent element
`[role]` values are valid
`[aria-*]` attributes have valid values
`[aria-*]` attributes are valid and not misspelled
Buttons have an accessible name
Image elements have `[alt]` attributes
Form elements have associated labels
`[user-scalable="no"]` is not used in the `<meta name="viewport">` element and the `[maximum-scale]` attribute is not less than 5.
`button`, `link`, and `menuitem` elements have accessible names
ARIA attributes are used as specified for the element's role
Elements with `role="dialog"` or `role="alertdialog"` have accessible names.
`[aria-hidden="true"]` elements do not contain focusable descendents
Elements use only permitted ARIA attributes
Background and foreground colors have a sufficient contrast ratio
Document has a `<title>` element
`<frame>` or `<iframe>` elements have a title
`<html>` element has a `[lang]` attribute
`<html>` element has a valid value for its `[lang]` attribute
Links are distinguishable without relying on color.
Links have a discernible name
List items (`<li>`) are contained within `<ul>`, `<ol>` or `<menu>` parent elements
No element has a `[tabindex]` value greater than 0
Touch targets have sufficient size and spacing.
Heading elements appear in a sequentially-descending order
Document has a main landmark.
Deprecated ARIA roles were not used
ARIA IDs are unique
No form fields have multiple labels
`<video>` elements contain a `<track>` element with `[kind="captions"]`
Uses ARIA roles only on compatible elements
Identical links have the same purpose.
`[accesskey]` values are unique
ARIA input fields have accessible names
ARIA `meter` elements have accessible names
ARIA `progressbar` elements have accessible names
Elements with the `role=text` attribute do not have focusable descendents.
ARIA toggle fields have accessible names
ARIA `tooltip` elements have accessible names
ARIA `treeitem` elements have accessible names
The page contains a heading, skip link, or landmark region
`<dl>`'s contain only properly-ordered `<dt>` and `<dd>` groups, `<script>`, `<template>` or `<div>` elements.
Definition list items are wrapped in `<dl>` elements
`<html>` element has an `[xml:lang]` attribute with the same base language as the `[lang]` attribute.
Input buttons have discernible text.
`<input type="image">` elements have `[alt]` text
The document does not use `<meta http-equiv="refresh">`
`<object>` elements have alternate text
Select elements have associated label elements.
Skip links are focusable.
Cells in a `<table>` element that use the `[headers]` attribute refer to table cells within the same table.
`<th>` elements and elements with `[role="columnheader"/"rowheader"]` have data cells they describe.
`[lang]` attributes have a valid value
Tables have different content in the summary attribute and `<caption>`.
All heading elements contain content.
Image elements do not have `[alt]` attributes that are redundant text.
Elements with visible text labels have matching accessible names.
Tables use `<caption>` instead of cells with the `[colspan]` attribute to indicate a caption.
`<td>` elements in a large `<table>` have one or more table headers.
All checks on this page are automated. Results are estimates - run targeted manual reviews when the score affects a release decision.

Send Feedback