Accessibility
· 13 checks — Landmarks, headings, alt text, forms, and link quality rolled into one auditable list.FFavicon & BrandingAction2 icon(s) detectedFIX
DWeb ManifestActionNot foundFIX
No web manifest found.
DPrint StylesheetActionNo print stylesFIX
CLink & Button QualityAction50 links, 19 buttons — all OKREVIEW
| Element | Text | Issue | Suggested Fix |
|---|---|---|---|
| https://us.pycon.org/2026/attend/informa… | REGISTER FOR PYCON US! | new tab | Add '(opens in new tab)' to text |
| https://packaging.python.org/tutorials/i… | Learn about installing package… | new tab | Add '(opens in new tab)' to text |
| https://packaging.python.org/tutorials/p… | Learn how to package your Pyth… | new tab | Add '(opens in new tab)' to text |
| https://packaging.python.org/tutorials/i… | Installing packages | new tab | Add '(opens in new tab)' to text |
| https://packaging.python.org/tutorials/p… | Uploading packages | new tab | Add '(opens in new tab)' to text |
| https://packaging.python.org/ | User guide | new tab | Add '(opens in new tab)' to text |
| https://www.python.org/dev/peps/pep-0541… | Project name retention | new tab | Add '(opens in new tab)' to text |
| https://blog.pypi.org | PyPI Blog | new tab | Add '(opens in new tab)' to text |
| https://dtdg.co/pypi | Infrastructure dashboard | new tab | Add '(opens in new tab)' to text |
| https://github.com/pypi/warehouse | Contribute on GitHub | new tab | Add '(opens in new tab)' to text |
| https://hosted.weblate.org/projects/pypa… | Translate PyPI | new tab | Add '(opens in new tab)' to text |
| https://github.com/pypi/warehouse/graphs… | Development credits | new tab | Add '(opens in new tab)' to text |
| https://policies.python.org/pypi.org/Ter… | Terms of Service | new tab | Add '(opens in new tab)' to text |
| https://policies.python.org/python.org/c… | Code of conduct | new tab | Add '(opens in new tab)' to text |
| https://policies.python.org/pypi.org/Pri… | Privacy Notice | new tab | Add '(opens in new tab)' to text |
| https://policies.python.org/pypi.org/Acc… | Acceptable Use Policy | new tab | Add '(opens in new tab)' to text |
| https://status.python.org/ | All Systems Operational | new tab | Add '(opens in new tab)' to text |
| https://www.python.org/psf-landing | Python Software Foundation | new tab | Add '(opens in new tab)' to text |
| https://www.python.org/psf-landing/ | Python Software Foundation | new tab | Add '(opens in new tab)' to text |
| https://aws.amazon.com/ | AWS C… | new tab | Add '(opens in new tab)' to text |
| https://www.datadoghq.com/ | Datadog … | new tab | Add '(opens in new tab)' to text |
| https://depot.dev | Depot … | new tab | Add '(opens in new tab)' to text |
| https://www.fastly.com/ | Fastly … | new tab | Add '(opens in new tab)' to text |
| https://careers.google.com/ | Google … | new tab | Add '(opens in new tab)' to text |
| https://www.pingdom.com/ | Pingdom … | new tab | Add '(opens in new tab)' to text |
| https://sentry.io/for/python/?utm_source… | Sentry … | new tab | Add '(opens in new tab)' to text |
| https://statuspage.io | StatusPage … | new tab | Add '(opens in new tab)' to text |
Image-only links need alt text on the image (or aria-label on the link) so screen readers can announce them.
a[href="https://aws.amazon.com/"]; a[href="https://www.datadoghq.com/"]; a[href="https://depot.dev"]; a[href="https://www.fastly.com/"]; a[href="https://careers.google.com/"]; a[href="https://www.pingdom.com/"]; a[href="https://sentry.io/for/python/?utm_source=pypi&utm_medium=paid-community&utm_c…"]; a[href="https://statuspage.io"]
Image-only links with no alt are unidentifiable to screen-reader users — link's destination is invisible.
Source: WCAG 2.1 SC 2.4.4
Add '(opens in new tab)' to link text or aria-label.
https://us.pycon.org/2026/attend/information/; https://packaging.python.org/tutorials/installing-packages/; https://packaging.python.org/tutorials/packaging-projects/; https://packaging.python.org/tutorials/installing-packages/; https://packaging.python.org/tutorials/packaging-projects/; https://packaging.python.org/; https://www.python.org/dev/peps/pep-0541/; https://blog.pypi.org; https://dtdg.co/pypi; https://github.com/pypi/warehouse (+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
B404 Error PageHTTP 404, custom pageREVIEW
BDark Mode SupportDark mode detectedREVIEW
Detection limited to meta tags and inline styles.
CColor Contrast (Screenshot)Action20 text elements analyzed, 10 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 Find, install and pu… | 7.96:1 | 3.0:1 | #000000 | #65A7CD | Pass |
| h2 Help | 20.65:1 | 3.0:1 | #000000 | #FDFDFD | Pass |
| h2 About PyPI | 20.65:1 | 3.0:1 | #000000 | #FDFDFD | Pass |
| h2 Contributing to PyPI | 20.65:1 | 3.0:1 | #000000 | #FDFDFD | Pass |
| h2 Using PyPI | 20.65:1 | 3.0:1 | #000000 | #FDFDFD | Pass |
| title PyPI · The Python P… | 16.07:1 | 4.5:1 | #000000 | #FFDF76 | Pass |
| a Skip to main content | 16.07:1 | 4.5:1 | #000000 | #FFDF76 | Pass |
| button Switch to mobile ver… | 16.07:1 | 4.5:1 | #000000 | #FFDF76 | Pass |
| span Join us in Long Beac… | 16.07:1 | 4.5:1 | #000000 | #FFDF76 | Pass |
| a REGISTER FOR PYCON U… | 16.07:1 | 4.5:1 | #000000 | #FFDF76 | Pass |
| a Help | 4.14:1 | 4.5:1 | #000000 | #0073B7 | Fail |
| a Docs | 4.14:1 | 4.5:1 | #000000 | #0073B7 | Fail |
| a Sponsors | 3.91:1 | 4.5:1 | #000000 | #006FB1 | Fail |
| a Log in | 3.79:1 | 4.5:1 | #000000 | #006DAD | Fail |
| a Register | 3.79:1 | 4.5:1 | #000000 | #006DAD | Fail |
| button Menu | 3.79:1 | 4.5:1 | #000000 | #006DAD | Fail |
| a Help | 3.79:1 | 4.5:1 | #000000 | #006DAD | Fail |
| a Docs | 3.79:1 | 4.5:1 | #000000 | #006DAD | Fail |
| a Sponsors | 3.79:1 | 4.5:1 | #000000 | #006DAD | Fail |
| a Log in | 3.79:1 | 4.5:1 | #000000 | #006DAD | 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 Structure9 landmarksPASS
A+Heading Hierarchy5 headingsPASS
- H1 Find, install and publish Python packages with the Python Package Index
- H2 Help
- H2 About PyPI
- H2 Contributing to PyPI
- H2 Using PyPI
A+Alt Text QualityAll 11 images OKPASS
A+Form AccessibilityAll 1 controls labeledPASS
| Control | Type | Label | Method |
|---|---|---|---|
| #search | text | Search PyPI | for/id |
A+Lighthouse Accessibility AuditsScore 96/100 — 1 failing, 26 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
Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. Learn more about touch targets.
Performance issues directly impact user engagement and conversion rates.
| Failing Elements |
|---|
Site map footer.footer > div.footer__text > p > a |
English form > ul > li > button.language-switcher__selected |
español form > ul > li > button |
français form > ul > li > button |
日本語 form > ul > li > button |
português (Brasil) form > ul > li > button |
українська form > ul > li > button |
Ελληνικά form > ul > li > button |
Deutsch form > ul > li > button |
中文 (简体) form > ul > li > button |
中文 (繁體) form > ul > li > button |
русский form > ul > li > button |
עברית form > ul > li > button |
Esperanto form > ul > li > button |
한국어 form > ul > li > button |
These items highlight common accessibility best practices.