Catalog PyPI
PACKAGE EXPLORERView in registry

a11y-checker

PyPI

Asynchronous Python client for the accessibility checker API

accessibilityasyncauditscantest
Versions collected1
Direct dependencies1From release 1.0.4
Last observed20 Oct, 16:17 UTC

README

Version 1.0.4 documentation

a11y-checker

a11y-checker is an asynchronous Python client for the Accessibility Checker API - a tool for automated accessibility audits based on WCAG 2.1 / 2.2.
It lets you easily scan, re-scan, and analyze websites directly from your Python applications.


Features

  • Fully asynchronous (non-blocking)
  • Multi-language and device scanning
  • Fetch, re-scan, or delete audits

Installation

pip install a11y-checker

Usage Example

import asyncio
from a11y_checker import A11yCheckerClient, Device, Language

async def main():
    async with A11yCheckerClient() as guest:
        # Run a new audit
        audit_request = await guest.scan("https://example.com", lang=Language.EN, device=Device.DESKTOP)
        print(audit_request)

        # Get audit
        audit = await guest.audit(uuid=audit_request['uuid'])
        print(audit)

        # Delete an audit
        await guest.delete_audit(audit['uuid'])

asyncio.run(main())

🔑 Get Your API Key

You can test as a guest, request an API key, or test the service directly on the website:

👉 https://wcag.dock.codes/contact-us/

Enums

EnumDescriptionExample
LanguageLanguage for auditsLanguage.EN, Language.PL, Language.DE
DeviceDevice type for scanningDevice.DESKTOP, Device.MOBILE, Device.ALL
AuditStatusFilter audits by statusAuditStatus.PASSED, AuditStatus.FAILED, AuditStatus.TO_TESTS
SortSorting order for resultsSort.CREATED_AT_DESC, Sort.LAST_AUDIT_ASC

Available Methods

MethodDescription
scan(url: str, lang: Language, device: Device, sync: bool, extra_data: bool, unique_key: Optional[str], key: Optional[str])Run a new accessibility scan for a given URL.
audit(uuid: str, lang: Language, extra_data: bool key: Optional[str])Get detailed results of a specific audit.
audits(search: str, page: int, per_page: int, sort: Sort, unique_key: Optional[str], key: Optional[str])Fetch paginated audits with optional filtering and sorting.
rescan(uuid: str, lang: Language, sync: bool, extra_data: bool = False)Trigger a re-scan of an existing audit.
history(uuid: str, page: int, per_page: int, sort: Sort, key: Optional[str])Fetch paginated audit history with optional filtering and sorting.
delete_audit(uuid: str, key: Optional[str])Delete an existing audit.
delete_history(uuid: str, key: Optional[str])Delete audit history.
user(key: Optional[str])Get current user data.
update_audit_manual(uuid: str, criterion_id: int, status: AuditStatus, device: Device, key: Optional[str])Updating the status of a single criterion from a manual audit.

Advanced Example: Parallel Audits

import asyncio
from a11y_checker import A11yCheckerClient

async def main():
    async with A11yCheckerClient(api_key="your-api-key") as client:
        results = await asyncio.gather(
            client.audit(uuid="uuid1"),
            client.audit(uuid="uuid2"),
            client.audit(uuid="uuid3"),
        )
        print(results)

asyncio.run(main())

🤝 Contributing Contributions are welcome! If you find a bug or want to improve the library, please open an issue or pull request on 👉 GitHub

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
1.0.414 Nov 20251

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 16:17 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:71f4b6661f52ed90a9e4e5010aae148b43185696710abd683200c171139b55dd