Accessibility on Warehouse (PyPI)

On Global Accessibility Awareness Day it’s a good time to reflect on how we approach accessibility on the Python Package Index.

This year Global Accessibility Awareness Day is being marked on May 17th. The purpose of this day is to raise awareness about digital inclusion - and how people who work in the digital space can ensure their software works for the largest possible group of users.

Accessibility is an important subject; as a digital designer, it is my responsibility to do everything that I can to design solutions that include, rather than exclude, users.

On the Python Package Index, accessibility has been baked into the design from the beginning: from the selection of high-contrast colors, to the large default text size, to the way that our HTML markup is structured. However, like everything, meeting accessibility standards and including all users regardless of their impairments is an ongoing task that will never be complete.

To that end, earlier this year, I contacted Axcess Lab to ask if one of their team members would be interested in dedicating some of their awesome open-source project time to the Python Package Index. Lucky for us, Mattias volunteered to assist, and has since completed an accessibility audit on (thanks Mattias!!!).

You can read the full audit here, a few highlights:

What we’re doing well

Mattias noted font size, color contrast, outline design and the uncluttered UI as positive accessibility attributes.

Our form design is helpful for users using screen readers, while visually impaired users are able to zoom the interface without loss of function.

On mobile, the whitespace we provide between elements helps users with motor impairments scroll the page.


There are still a few things we can do to make the user experience better for all:

  • Redesigning the line length of our text, for optimal readability
  • Removing italic styles, as these can be difficult to read for people with reading impairments
  • Reconsider our use of disabled buttons, because they suck.
  • Underlining links
  • Increasing the clickable areas of some elements
  • Adding ARIA where needed
  • Improving the way some of our forms work, particularly for people using screen readers

Next steps

I have started opening tickets on the project issue tracker to address each of these issues, and will begin working through these in the coming months.

I will also be running a PyPI sprint at EuroPython this year, so hope that any remaining issues can be addressed at this time.

How you can help

If you are a PyPI user and notice an accessibility issue on the site, please report it via our issue tracker. We take these issues seriously, so will try our best to respond as soon as possible.

If you are a developer, and would like to help make the Python ecosystem a more friendly and welcoming place, we’d love you to make a PyPI PR addressing an accessibility issue. We do our best to support new contributors - just comment on the issue you’d like to work on, and let us know if you need any help

Addendum - 21st July 2018

The Python Packaging Working Group continues to seek funding to improve PyPI. With more funding, the team aims to make the accessibility improvements highlighted by this audit, as well as identify and address other accessibility issues. To donate to the working group, visit - donations can be made on a single, or recurring basis. Every donation is appreciated!

17th May, 2018

More Articles

Contact Me

Get In Touch!

I am available for new design and development work via my consulting company, Kabu Creative. To discuss a particular project, please contact me at n.harris [at]

I tweet @nlhkabu - feel free to say "hi"!