{"id":34502791,"url":"https://github.com/berkinduz/access-jet","last_synced_at":"2026-04-22T06:06:28.103Z","repository":{"id":328946406,"uuid":"1116288020","full_name":"berkinduz/access-jet","owner":"berkinduz","description":"AccessJet is a blazing fast accessibility (a11y) CLI tool. It optimizes auditing by blocking heavy assets (images/fonts) via Playwright, formats minified HTML for readability, and enforces quality thresholds for CI/CD pipelines.","archived":false,"fork":false,"pushed_at":"2025-12-16T11:01:50.000Z","size":251,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-20T00:27:14.884Z","etag":null,"topics":["a11y","accessibility","automation","axe-core","cli","cli-testing","playwright"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berkinduz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-14T15:15:20.000Z","updated_at":"2025-12-17T11:35:12.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/berkinduz/access-jet","commit_stats":null,"previous_names":["berkinduz/access-jet"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/berkinduz/access-jet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkinduz%2Faccess-jet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkinduz%2Faccess-jet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkinduz%2Faccess-jet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkinduz%2Faccess-jet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berkinduz","download_url":"https://codeload.github.com/berkinduz/access-jet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berkinduz%2Faccess-jet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32123605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T00:31:26.853Z","status":"online","status_checked_at":"2026-04-22T02:00:05.693Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["a11y","accessibility","automation","axe-core","cli","cli-testing","playwright"],"created_at":"2025-12-24T02:20:07.332Z","updated_at":"2026-04-22T06:06:28.097Z","avatar_url":"https://github.com/berkinduz.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 AccessJet\n\n[![npm version](https://img.shields.io/npm/v/accessjet.svg)](https://www.npmjs.com/package/accessjet)\n[![npm downloads](https://img.shields.io/npm/dm/accessjet.svg)](https://www.npmjs.com/package/accessjet)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![GitHub stars](https://img.shields.io/github/stars/berkinduz/access-jet.svg)](https://github.com/berkinduz/access-jet/stargazers)\n[![GitHub issues](https://img.shields.io/github/issues/berkinduz/access-jet.svg)](https://github.com/berkinduz/access-jet/issues)\n\nAccessJet is a blazing fast, developer-centric accessibility (a11y) CLI tool built for modern CI/CD pipelines.\n\nUnlike traditional tools that load entire web pages, AccessJet optimizes the auditing process by intercepting network requests and focusing purely on the DOM structure required for accurate analysis. It provides instant, actionable feedback directly in your terminal without the noise.\n\n## ✨ Why AccessJet?\n\n⚡ **Performance First**: Achieves sub-second audits by strictly blocking non-essential resources (images, fonts, media) at the network layer.\n\n🛠 **Developer Experience (DX)**: No more wall of text. Minified HTML is automatically formatted (Prettier), truncated, and syntax-highlighted in the terminal.\n\n🚦 **CI/CD Quality Gates**: Define strict failure thresholds (e.g., fail only on critical issues) to integrate safely into existing pipelines.\n\n🔄 **Concurrency**: Parallel execution engine allows scanning multiple URLs simultaneously without resource exhaustion.\n\n![AccessJet Demo](https://raw.githubusercontent.com/berkinduz/access-jet/main/assets/demo.png)\n\n## 📦 Installation\n\n```bash\nnpm install -g accessjet\n```\n\n## 🚀 Usage\n\n### Basic Scan\n\nCheck a single URL for accessibility violations:\n\n```bash\naccessjet check https://example.com\n```\n\n### High Performance Mode\n\nScan multiple routes in parallel. The default concurrency is 5, but you can adjust this based on your machine's resources:\n\n```bash\naccessjet check https://site.com/home https://site.com/about -c 10\n```\n\n### CI/CD \"Strict\" Mode\n\nIn a CI environment, you might want to block the build only if Critical issues are found, ignoring Minor or Moderate warnings:\n\n```bash\naccessjet check https://myapp.com --fail-on critical\n```\n\n## ⚙️ Configuration\n\n| Flag          | Alias | Description                                                                       | Default  |\n| ------------- | ----- | --------------------------------------------------------------------------------- | -------- |\n| --concurrency | -c    | Number of concurrent browser contexts.                                            | 5        |\n| --fail-on     | -f    | Minimum impact level to trigger exit code 1 (minor, moderate, serious, critical). | moderate |\n| --json        | -j    | Export full report to report.json.                                                | false    |\n\n## 🏗 Architecture \u0026 Performance\n\nAccessJet is built on Playwright and Axe-core, but utilizes a custom execution pipeline designed for speed.\n\n### 1. Network Interception Strategy\n\nTo minimize scan time, AccessJet hooks into the browser's network layer. It proactively aborts requests for assets that do not affect the accessibility tree (images, fonts, stylesheets, media), ensuring that bandwidth is consumed only by the document structure.\n\n### 2. Isolated Browser Contexts\n\nInstead of launching a new browser instance for every URL (which is expensive), AccessJet initializes a single browser instance and utilizes lightweight BrowserContexts for isolation. This significantly reduces memory overhead during batch processing.\n\n### 3. The Output Pipeline\n\nRaw HTML from modern SPAs is often minified and unreadable. AccessJet processes the failing nodes through a dedicated formatting pipeline before displaying them:\n\n```\nRaw DOM Node → Prettier (HTML Parser) → Intelligent Truncation → Syntax Highlighting\n```\n\n## 🤖 GitHub Actions Integration\n\nYou can add AccessJet to your PR workflow to prevent accessibility regressions.\n\n```yaml\n.github/workflows/a11y.yml\nname: Accessibility Audit\n\non: [pull_request]\n\njobs:\n  audit:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: actions/setup-node@v4\n        with: { node-version: '18' }\n      - name: Install Dependencies\n        run: |\n          npm install -g accessjet\n          npx playwright install chromium\n      - name: Run Audit\n        # Fails only on critical issues\n        run: accessjet check https://your-staging-url.com --fail-on critical\n```\n\n## 🛠 Local Development\n\nTo contribute to AccessJet:\n\n```bash\ngit clone https://github.com/berkinduz/access-jet.git\ncd access-jet\nnpm install\nnpm run build\n# Generate the demo SVG seen in this README\nnpm run generate-demo\n```\n\n## 📄 License\n\nDistributed under the MIT License. See LICENSE for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberkinduz%2Faccess-jet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberkinduz%2Faccess-jet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberkinduz%2Faccess-jet/lists"}