Inspiration

While browsing the web, I realized how many websites are inaccessible to people with disabilities.
Many accessibility issues like missing alt text, poor contrast, or improper ARIA usage are often overlooked by developers.
I wanted to build an automated tool that helps developers and non-technical users easily check if their websites follow accessibility best practices.
The open-source project axe-core inspired me to leverage a powerful and standardized accessibility testing engine.

What it does

Axess takes a website URL as input and performs an automated accessibility audit using Axe.
It scans the page in a headless browser, collects accessibility violations, and presents them in an interactive table.
Users can also download a detailed CSV report of the issues found.

How we built it

  • Built the frontend using Streamlit for fast and interactive UI development.
  • Automated browser interaction using Selenium WebDriver.
  • Integrated axe_selenium_python to run axe-core accessibility scans.
  • Used pandas to manage data and enable CSV export.
  • Handled deployment on Streamlit Community Cloud with appropriate system binaries for compatibility. ## Challenges we ran into
  • Environment mismatch:
    Locally, I used Brave browser, but in deployment, I had to switch to Chromium and Chromedriver provided by Streamlit Cloud.

  • Driver discovery issues:
    Selenium would not automatically find the correct driver on cloud, so I had to explicitly use system paths:

  service = Service("/usr/bin/chromedriver")
  chrome_options.binary_location = "/usr/bin/chromium"
- Large page load times:
Some websites take a long time to load, so I improved UX by showing a spinner during scan execution.
## Accomplishments that we're proud of
- A fully functional accessibility checker in under 100 lines of code.
- Cross-environment compatibility (local + cloud).
- Easy-to-use interface for non-developers.
- Downloadable detailed CSV reports for audits.
- A complete tool built using only the Python ecosystem.
## What we learned
- How important environment management is, especially when deploying browser automation to the cloud.
- How to use axe-core in combination with Selenium for efficient accessibility audits.
- The power of Streamlit in making interactive apps with minimal code.
- The need for explicit paths and environment variables to avoid deployment issues.
## What's next for Axess
- Add support for scanning multiple pages in a single run.
- Provide automated suggestions and fixes for common accessibility problems.
- Implement historical comparison of audit reports to track progress.
- Add more export options such as JSON and PDF.
- Build a visual dashboard to track accessibility trends over time.

Built With

Share this project:

Updates