{"adoption": {"forks": 253, "observed_at": "2026-08-28T04:03:45.773175+00:00", "stars": 1146}, "canonical_url": "https://ross.abutalabs.com/products/html_codesniffer", "card": {"archived": false, "artifact_type": "library", "description": "HTML_CodeSniffer is a client-side JavaScript application that checks a HTML document or source code, and detects violations of a defined coding standard. Comes with standards that cover the three conformance levels of the W3C's Web Content Accessibility Guidelines (WCAG) 2.0 and the U.S. Section 508 legislation.", "domain": ["web-development", "accessibility", "developer-tools", "testing"], "enriched": true, "function": ["testing", "accessibility", "linter", "browser-extension"], "health_score": 20, "homepage": "https://squizlabs.github.io/HTML_CodeSniffer/", "language": "JavaScript", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["squizlabs/HTML_CodeSniffer"], "name": "squizlabs/HTML_CodeSniffer", "platform": ["browser", "cli"], "pushed_at": "2024-01-07T19:25:06+00:00", "repo": "squizlabs/HTML_CodeSniffer", "stars": 1146, "tags": ["wcag", "section-508", "html-auditing", "bookmarklet", "a11y-testing", "nodejs", "javascript"], "topics": [], "urls": [], "use_cases": ["audit a web page for WCAG 2.1 accessibility violations", "check HTML source code against Section 508 standards", "run automated accessibility checks in a headless browser from the command line", "enforce custom HTML coding standards across a website with custom sniffs", "quickly inspect any page's accessibility issues with a bookmarklet", "integrate HTML accessibility linting into a Node.js build pipeline"], "what_it_is": "HTML_CodeSniffer is a client-side JavaScript library that checks HTML documents or source code for violations of defined coding and accessibility standards, including WCAG 2.1 (Levels A, AA, AAA) and U.S. Section 508. It can be called from JavaScript, run via a bookmarklet auditor, used as an npm module, or executed on the command line with a headless browser.", "when_to_avoid": ["you need full-page automated testing with modern tooling like axe-core or Lighthouse", "you need server-side rendering checks or non-HTML document formats", "you require actively developed tooling with frequent updates"], "when_to_choose": ["you need client-side, server-free HTML accessibility auditing", "you need WCAG 2.1 or Section 508 conformance checks out of the box", "you want a bookmarklet for quick manual audits of live pages", "you need to define custom HTML coding standards via sniffs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/html_codesniffer", "repo": "squizlabs/HTML_CodeSniffer", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:45.773175+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:34:12.777335+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "9799fb6a35ed37a10fc0a1dc72a7430376f4cd33efe3caffebebfbed714f4d0f", "fetched_at": "2026-08-28T04:03:45.773175+00:00", "kind": "readme", "missing": false, "url": "https://github.com/squizlabs/HTML_CodeSniffer"}, {"content_hash": "ab76c1eed1df080b263436dda7cde7fa83c64effe4e69a5b889b3fcdaaf5b53d", "fetched_at": "2026-08-29T12:39:43.472945+00:00", "kind": "homepage", "missing": false, "url": "https://squizlabs.github.io/HTML_CodeSniffer/"}, {"content_hash": "6382a226c3768ed69e2c58004926eef12a395d6e37961bb3b7a57c664a116314", "fetched_at": "2026-08-29T12:39:43.481976+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/html_codesniffer"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5431, "days_push": 969, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}