GithubHelp home page GithubHelp logo

anqaka / a11y-audit-tool Goto Github PK

View Code? Open in Web Editor NEW

This project forked from snowdogapps/a11y-audit-tool

0.0 0.0 1.0 2.99 MB

Bootstrap project to easily run and develop a11y audits.

JavaScript 0.29% TypeScript 24.52% CSS 0.22% PLpgSQL 0.89% Vue 25.78% Dockerfile 0.13% SCSS 48.18%

a11y-audit-tool's Introduction

A11y Audit Tool

A11y Audit Tool is your comprehensive solution for web accessibility testing and report generation. With both automated and manual testing capabilities, this tool ensures your website's compliance with WCAG (Web Content Accessibility Guidelines) and helps you identify and address accessibility issues effectively.

Screenshots of some views of the application

Key Features

  • Automated Tests: Run automatic tests on any website across many pages and various screen sizes.
  • Manual Tests: Conduct manual tests using our template based on the Trusted Tester Conformance Process.
  • Combined Testing Approach: Seamlessly integrate automatic tests with manual tests for comprehensive auditing.
  • Downloadable Reports: Generate reports for easy reference and collaboration, facilitating improvement efforts.
  • Project Organization: Group audits into projects for better organization and management of accessibility testing efforts.

Why Choose A11y Audit Tool?

  • Comprehensive Testing: Unlike most tools that focus solely on automatic or manual tests, our tool offers both, ensuring comprehensive results. During manual tests, you can review and comment on automatic test results.
  • Guided Testing: Our audit template guides you through accessibility features. It provides test conditions and techniques to solve issues. A tester doesn't need to be an expert in the accessibility field to perform an audit using our tool.
  • Multi-page and Multi-screen Testing: Test multiple pages (URLs) and screen sizes in a single audit, enhancing efficiency.
  • Clear Reports: Generated reports are clear and understandable, facilitating discussions with clients and roadmap planning for improvement efforts.
  • Extensibility: Extend the tool's capabilities by adding custom test cases using Playwright, reducing manual work and enhancing efficiency.

Technology Stack

Database and Authentication

Full-Stack Application

Project setup

Prerequisites

Supabase

  1. Create a Supabase project here.
  2. Supabase projects rely on the postgresql database engine. In the ./sql directory you will find all the SQL installation files needed to make the whole application work. To install the necessary schema, please go to the SQL Editor tab of your project and RUN all SQL lines in the order presented on directory and inner file level.
  3. In your Supabase project go to Project Settings -> API. Create .env file, copy .env.example content and set values from Supabase settings:
  • NITRO_PUBLIC_SUPABASE_URL ๐Ÿ‘‰ Project URL
  • NITRO_PUBLIC_SUPABASE_KEY ๐Ÿ‘‰ anon public
  • NITRO_SUPABASE_SERVICE_KEY ๐Ÿ‘‰ service_role secret

Alternatively, you can run Supabase locally:

  1. Run npx supabase login and pass generated access token.
  2. Run npx supabase start.
  3. Pass envs from supabase started setup to .env file.

Learn more here.

Nuxt

  1. Run:
pnpm install
pnpm exec playwright install
pnpm dev
  1. Register new user on /register page.

Admin Role

Admins possess privileges to:

  • Create a new project
  • Assign user to a project
  • Set user type
  • See, edit and remove any audit

Admins have access to extra information and features on /admin page.

Admin role information is stored on the user custom claims level and can be found in claims_admin auth user's property. To check user custom claims run the following query in Supabase SQL Editor:

select get_claims('PASS-HERE-SPECIFIC-USER-UUID-FROM-AUTH-TABLE');

To grant admin privileges to a user, follow these steps:

  1. Run the following query in Supabase SQL Editor:
    select set_claim('PASS-HERE-SPECIFIC-USER-UUID-FROM-AUTH-TABLE', 'claims_admin', 'true');
  2. Re-login to Nuxt application to see the change.

User Types

The application supports 2 user types:

  1. Auditor - can perform the following actions in projects he is assigned to:
    • Create new audits
    • View and edit his audit drafts
    • View all completed audits (called reports)
  2. Viewer - can perform the following actions in projects he is assigned to:
    • View all completed audits (called reports)

User type information is stored on the user custom claims level and can be found in user_role auth user's property. When custom claim user_role is set/updated, the corresponding information in the profiles table (user_type column) is also updated.

To grant auditor/viewer privileges to a user, follow these steps:

  1. Log in to Nuxt application as admin user, go to /admin and Update user type.

    Alternatively, run the following query in Supabase SQL Editor.

    Auditor:

    select set_claim('PASS-HERE-SPECIFIC-USER-UUID-FROM-AUTH-TABLE', 'user_role', '"auditor"');

    Viewer:

    select set_claim('PASS-HERE-SPECIFIC-USER-UUID-FROM-AUTH-TABLE', 'user_role', '"viewer"');
  2. The user should re-login to Nuxt application to see the change.

Https Configuration

Install mkcert on your system. The installation instructions for macOS, Windows and Linux can be found in the mkcert Github repository.

Create a valid certificate by running the following command in your project folder:

mkcert [-install] localhost

Run your project using

npm run dev-secure

Your project will now be served on https://localhost:3000.

Contributing

Contributions are welcome! If you find a bug or have a feature request, feel free to open an issue or submit a pull request.

Like this project?

We'd appreciate it if you leave a โญ or share it with the world โœจ.

a11y-audit-tool's People

Contributors

niemaco avatar ofrankowska avatar robwozniak avatar patrykbura avatar anqaka avatar michalstaniszewski-snowdog avatar

Forkers

scypi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.