Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.FHeading HierarchyAction59 headings, 5 skip(s)FIX
- H2 Media & resources
- H6 Media centre skipped
- H6 Resources & data
- H2 Languages
- H2 Who we are
- H6 About skipped
- H6 Transparency and accountability
- H6 Partnerships
- H2 Our work
- H6 About hunger skipped
- H6 Saving lives
- H6 Changing lives
- H6 Supporting governments
- H6 Innovation and digital transformation
- H2 Where we work
- H6 Countries skipped
- H6 Emergencies
- H2 Get involved
- H6 Individual supporters skipped
- H6 Companies and start-ups
- H6 Partners
- H1 Sudan's war three years on: shattered dreams, soaring hunger, shrinking aid
- H2 WFP appoints acclaimed actress Lucy Hale as newest global Goodwill Ambassador
- H2 How the Mideast crisis is deepening hunger far beyond the front lines
- H2 WFP urges support to protect gains in fight against entrenched food insecurity in Haiti
- H2 We are the largest humanitarian organization saving and changing lives worldwide
- H3 Who we are
- H2 WFP in numbers
- H2 Where we work
- H2 Our work
- H3 Emergencies
- H3 Cash-based transfers
- H3 Gender equality
- H3 Nutrition
- H3 School based programmes
- H3 Social Protection
- H3 Climate action
- H3 Resilience building
- H3 Innovation
- H2 More from WFP
- H3 A year after Myanmar's earthquake, Mideast crisis threatens more hunger
- H3 Lebanese families forced to flee again as conflict increases risk of hunger
- H3 Annual Country Reports 2025
- H2 Emergencies
- H2 Who we are
- H2 Our work
- H2 About hunger
- H2 Media & resources
- H2 Get involved
- H2 Work with us
- H2 Follow us
- H2 Support us
- H2 WE CARE ABOUT YOUR PRIVACY
- H2 Privacy Preference Center
- H3 Manage Consent Preferences
- H4 Strictly Necessary Cookies
- H4 Performance Cookies
- H4 Targeting Cookies
- H3 Cookie List
Skipping heading levels breaks the document outline. Screen readers may interpret missing levels as structural errors.
Skipping heading levels breaks the document outline — screen-reader users lose track of section nesting.
Learn more ▾ ▴
Screen reader users navigate by jumping between headings (H1 → H2 → H3). Skipping (H1 → H3) breaks the sense of hierarchy. Use sequential levels even if you don't like the default styling — restyle with CSS instead. WCAG 1.3.1 (Info and Relationships) treats this as an A failure.
Source: WCAG 2.1 SC 1.3.1 / W3C WAI
Skipping heading levels breaks the document outline. Screen readers may interpret missing levels as structural errors.
Skipping heading levels breaks the document outline — screen-reader users lose track of section nesting.
Learn more ▾ ▴
Screen reader users navigate by jumping between headings (H1 → H2 → H3). Skipping (H1 → H3) breaks the sense of hierarchy. Use sequential levels even if you don't like the default styling — restyle with CSS instead. WCAG 1.3.1 (Info and Relationships) treats this as an A failure.
Source: WCAG 2.1 SC 1.3.1 / W3C WAI
Skipping heading levels breaks the document outline. Screen readers may interpret missing levels as structural errors.
Skipping heading levels breaks the document outline — screen-reader users lose track of section nesting.
Learn more ▾ ▴
Screen reader users navigate by jumping between headings (H1 → H2 → H3). Skipping (H1 → H3) breaks the sense of hierarchy. Use sequential levels even if you don't like the default styling — restyle with CSS instead. WCAG 1.3.1 (Info and Relationships) treats this as an A failure.
Source: WCAG 2.1 SC 1.3.1 / W3C WAI
Skipping heading levels breaks the document outline. Screen readers may interpret missing levels as structural errors.
Skipping heading levels breaks the document outline — screen-reader users lose track of section nesting.
Learn more ▾ ▴
Screen reader users navigate by jumping between headings (H1 → H2 → H3). Skipping (H1 → H3) breaks the sense of hierarchy. Use sequential levels even if you don't like the default styling — restyle with CSS instead. WCAG 1.3.1 (Info and Relationships) treats this as an A failure.
Source: WCAG 2.1 SC 1.3.1 / W3C WAI
Skipping heading levels breaks the document outline. Screen readers may interpret missing levels as structural errors.
Skipping heading levels breaks the document outline — screen-reader users lose track of section nesting.
Learn more ▾ ▴
Screen reader users navigate by jumping between headings (H1 → H2 → H3). Skipping (H1 → H3) breaks the sense of hierarchy. Use sequential levels even if you don't like the default styling — restyle with CSS instead. WCAG 1.3.1 (Info and Relationships) treats this as an A failure.
Source: WCAG 2.1 SC 1.3.1 / W3C WAI
FLink & Button QualityAction13 issue(s) across 275 links and 14 buttonsFIX
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://donate.wfp.org/1243/donation/reg… | Donate | new tab | Add '(opens in new tab)' to text |
| (empty) | empty | Add link text or aria-label | |
| (empty) | empty | Add link text or aria-label | |
| https://www.wfp.org/media-and-resources | Read more | generic text | Replace with descriptive text |
Before: Read more Suggested: Media And Resources | |||
| https://multimedia.wfp.org/ | Multimedia content | new tab | Add '(opens in new tab)' to text |
| https://dataviz.vam.wfp.org/ | Food security analysis | new tab | Add '(opens in new tab)' to text |
| https://hungermap.wfp.org/ | HungerMap LIVE | new tab | Add '(opens in new tab)' to text |
| https://www.wfp.org/who-we-are | Read more | generic text | Replace with descriptive text |
Before: Read more Suggested: Who We Are | |||
| https://www.wfp.org/our-work | Read more | generic text | Replace with descriptive text |
Before: Read more Suggested: Our Work | |||
| https://www.wfp.org/countries | Read more | generic text | Replace with descriptive text |
Before: Read more Suggested: Countries | |||
| https://www.wfp.org/get-involved | Read more | generic text | Replace with descriptive text |
Before: Read more Suggested: Get Involved | |||
| https://donate.wfp.org/1243/donation/reg… | Donate | new tab | Add '(opens in new tab)' to text |
| https://freerice.com/ | Play Freerice | new tab | Add '(opens in new tab)' to text |
| https://sharethemeal.org/ | ShareTheMeal app | new tab | Add '(opens in new tab)' to text |
| https://innovation.wfp.org/apply | Apply for the Innovation Chall… | new tab | Add '(opens in new tab)' to text |
| https://donate.wfp.org/1243/donation/reg… | Donate | new tab | Add '(opens in new tab)' to text |
| https://www.wfp.org/stories/sudans-war-t… | Read more | generic text | Replace with descriptive text |
Before: Read more Suggested: Sudans War Three Years Shattered Dreams Soaring Hunger Shrinking Aid | |||
| https://www.wfp.org/who-we-are | Read more | generic text | Replace with descriptive text |
Before: Read more Suggested: Who We Are | |||
| https://x.com/WFP | Visit WFP X channel | new tab | Add '(opens in new tab)' to text |
| https://www.facebook.com/WorldFoodProgra… | Visit WFP Facebook channel | new tab | Add '(opens in new tab)' to text |
| https://www.instagram.com/Worldfoodprogr… | Visit WFP Instagram channel | new tab | Add '(opens in new tab)' to text |
| https://www.linkedin.com/company/world-f… | Visit WFP Linkedin channel | new tab | Add '(opens in new tab)' to text |
| https://www.youtube.com/user/WORLDFOODPR… | Visit WFP YouTube channel | new tab | Add '(opens in new tab)' to text |
| https://www.tiktok.com/@worldfoodprogram… | Visit WFP TikTok channel | new tab | Add '(opens in new tab)' to text |
| https://donate.wfp.org/1243/donation/reg… | Donate | new tab | Add '(opens in new tab)' to text |
| (empty) | empty | Add link text or aria-label | |
| https://www.wfp.org/privacy-policy | More information about your pr… | new tab | Add '(opens in new tab)' to text |
| https://www.wfp.org/privacy-policy | More information about your pr… | new tab | Add '(opens in new tab)' to text |
| https://www.onetrust.com/products/cookie… | Powered by OneTrust Opens in a… | new tab | Add '(opens in new tab)' to text |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
| <button> | (empty) | empty | Add button text or aria-label |
Links without text are announced as raw URLs by screen readers.
a.search-overlay__toggler (#74 on page); a.search-overlay__toggler (#81 on page); a.fullscreen-overlay__closer (#1577 on page)
Links with no accessible text (empty <a></a>, image-only no alt, icon-only no aria-label) are unidentifiable to screen readers.
Source: WCAG 2.1 SC 2.4.4
Generic link text like 'click here' doesn't describe the destination.
https://www.wfp.org/media-and-resources ("Read more"); https://www.wfp.org/who-we-are ("Read more"); https://www.wfp.org/our-work ("Read more"); https://www.wfp.org/countries ("Read more"); https://www.wfp.org/get-involved ("Read more"); https://www.wfp.org/stories/sudans-war-three-years-shattered-dreams-soaring-h… ("Read more"); https://www.wfp.org/who-we-are ("Read more")
Generic anchor text ('click here', 'read more', 'learn more') tells screen readers and search engines nothing about the destination.
Learn more ▾ ▴
Out-of-context lists of links read by AT (one navigation pattern) become useless when every link says 'click here'. Use the destination's title or topic as anchor text. Doubles as SEO win — Google passes anchor-text relevance to the destination.
Source: WCAG 2.4.4 / Google Search Central
Add '(opens in new tab)' to link text or aria-label.
https://donate.wfp.org/1243/donation/regular/?campaign=1517; https://multimedia.wfp.org/; https://dataviz.vam.wfp.org/; https://hungermap.wfp.org/; https://donate.wfp.org/1243/donation/regular/?campaign=1517; https://freerice.com/; https://sharethemeal.org/; https://innovation.wfp.org/apply; https://donate.wfp.org/1243/donation/regular/?campaign=1517; https://x.com/WFP (+9 more)
Links with target="_blank" without rel="noopener" leak the originating page's window context — security and UX issue.
Learn more ▾ ▴
Without rel="noopener", the new tab can navigate the original tab via window.opener (tab-nabbing attack). Modern browsers default to noopener for target=_blank but only since recent versions. Always set rel="noopener noreferrer" explicitly.
Source: MDN target / OWASP
Icon-only buttons need an aria-label so screen readers can announce them.
button (#1629 on page); button (#1639 on page); button (#1653 on page)
Buttons with no accessible text (icon-only, no aria-label) can't be activated by voice control or understood by screen readers.
Source: WCAG 2.1 SC 4.1.2
DDark Mode SupportActionTheme color onlyFIX
Detection limited to meta tags and inline styles.
DPrint StylesheetActionNo print stylesFIX
B404 Error PageHTTP 404, custom pageREVIEW
BFavicon & Branding5 icon(s) detectedREVIEW
CWeb ManifestActionValid manifestREVIEW
CColor Contrast (Screenshot)Action20 text elements analyzed, 1 fail WCAG AAREVIEW
Analyzes text contrast against the actual rendered page, including background images, gradients, and overlays that CSS-based tools cannot detect.
Show all checked elements (20)
| Element | Ratio | Required | FG | BG | Result |
|---|---|---|---|---|---|
| h1 three years on: shat… | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Media & resources | 1.79:1 | 3.0:1 | #000000 | #3E3730 | Fail |
| h2 Languages | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Who we are | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Our work | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Where we work | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Get involved | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 WFP appoints acclaim… | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 How the Mideast cris… | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 WFP urges support to… | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 We are the largest h… | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Where we work | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Our work | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 More from WFP | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Emergencies | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Follow us | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Support us | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 WE CARE ABOUT YOUR P… | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h2 Privacy Preference C… | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
| h3 Who we are | 5.24:1 | 3.0:1 | #000000 | #7F7F7F | Pass |
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.
ALandmark Structure13 landmarksPASS
Multiple navigations need aria-label to distinguish them for screen readers.
Some <nav> elements lack aria-label — screen-reader users hear 'navigation' multiple times with no way to distinguish them.
Learn more ▾ ▴
When a page has multiple <nav> regions (primary, footer, breadcrumb), each needs aria-label or aria-labelledby. AT users navigate by landmark; identical 'navigation' announcements force them to enter each one to discover purpose.
Source: WAI-ARIA Authoring Practices
A+Alt Text QualityAll 10 images OKPASS
AForm Accessibility1 of 8 controls have issuesPASS
| Control | Type | Label | Method |
|---|---|---|---|
| #ot-group-id-C0002 | checkbox | Performance Cookies | for/id |
| #ot-group-id-C0004 | checkbox | Targeting Cookies | for/id |
| #vendor-search-handler | text | Cookie list search | aria-label |
| #chkbox-id | checkbox | checkbox label | for/id |
| #select-all-hosts-groups-handler | checkbox | checkbox label | for/id |
| #select-all-vendor-groups-handler | checkbox | checkbox label | for/id |
| #select-all-vendor-leg-handler | checkbox | checkbox label | for/id |
| input | search | (Enter keyword) | placeholder only |
Placeholder text disappears on focus and is not a reliable label.
<input type="search">
Placeholder-only labels disappear when the user starts typing — they must remember what the field was for.
Learn more ▾ ▴
Placeholders are NOT labels. They vanish on input, fail color contrast checks (most are gray), and don't satisfy WCAG SC 3.3.2. Always use a real <label> alongside (or aria-labelledby).
Source: WCAG 2.1 SC 3.3.2 / Nielsen Norman
A+Lighthouse Accessibility AuditsScore 95/100 — 2 failing, 28 passedPASS
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.
Best practices
Disabling zooming is problematic for users with low vision who rely on screen magnification to properly see the contents of a web page. Learn more about the viewport meta tag.
Informational: a Permissions-Policy directive showing feature -> allowed origins.
Source: MDN Permissions-Policy
| Failing Elements |
|---|
head > meta head > meta |
These items highlight common accessibility best practices.
Visible text labels that do not match the accessible name can result in a confusing experience for screen reader users. Learn more about accessible names.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Visit X div.wfp-wrapper > div.site-footer__social-links > div.site-footer__social-links-icons > a |
Visit Facebook div.wfp-wrapper > div.site-footer__social-links > div.site-footer__social-links-icons > a |
Visit Instagram div.wfp-wrapper > div.site-footer__social-links > div.site-footer__social-links-icons > a |
Visit Linkedin div.wfp-wrapper > div.site-footer__social-links > div.site-footer__social-links-icons > a |
Visit YouTube div.wfp-wrapper > div.site-footer__social-links > div.site-footer__social-links-icons > a |
Visit TikTok div.wfp-wrapper > div.site-footer__social-links > div.site-footer__social-links-icons > a |
Cookies Policy div#onetrust-group-container > div#onetrust-policy > div#onetrust-policy-text > a.ot-cookie-policy-link |