OptiA11y.Core
0.4.0
dotnet add package OptiA11y.Core --version 0.4.0
NuGet\Install-Package OptiA11y.Core -Version 0.4.0
<PackageReference Include="OptiA11y.Core" Version="0.4.0" />
<PackageVersion Include="OptiA11y.Core" Version="0.4.0" />
<PackageReference Include="OptiA11y.Core" />
paket add OptiA11y.Core --version 0.4.0
#r "nuget: OptiA11y.Core, 0.4.0"
#:package OptiA11y.Core@0.4.0
#addin nuget:?package=OptiA11y.Core&version=0.4.0
#tool nuget:?package=OptiA11y.Core&version=0.4.0
OptiA11y.Core
The accessibility rules engine behind OptiA11y, editorial accessibility assistance for Optimizely content authors. Not a compliance certification tool — a clean audit result means OptiA11y found no issues it was able to detect, not proof of WCAG or ADA conformance.
This package has zero Optimizely/CMS dependencies (only HtmlAgilityPack) and is fully unit-testable on its own. It defines the ports-and-adapters core that every host adapter (PaaS, SaaS) and the optional rendered-style slice funnel into:
host content source → adapter → AuditDocument (ContentFragment[]) → RuleEngine → Finding[]
What's in this package
Model—AuditDocument,Finding,SourceLocation, and the typedContentFragmentshapes (image, link, heading, table, text, media, form field, button, iframe, and more) that every rule operates against. Rules never see raw HTML or a DOM.Parsing.HtmlFragmentParser— the single, shared entry point that turns raw HTML into fragments. Every host adapter funnels through this, so rule behaviour is identical regardless of where the content came from.Rules— over 30 independently DI-registrableIContentRuleimplementations covering alt text, headings, links, tables, forms, buttons, ARIA usage, language, colour contrast, reading level, and more. Each declares its own WCAG success criterion and level.RuleEngine— runs a set of rules against anAuditDocumentand returns findings ordered deterministically by location.
The Confidence model — the honesty mechanism at the centre of this package
Every Finding carries a Confidence:
Fail— a deterministic, unambiguous violation (a missing alt attribute, a skipped heading level, a contrast ratio below threshold). Reserved for structural facts a rule can be certain about.NeedsReview— a heuristic judgement (alt text quality, link text descriptiveness, reading level). The tool cannot know editorial intent, so it flags something worth a human's attention rather than asserting a defect.
Heuristic rules must never report Fail — this is what stops the tool from manufacturing false
assurance.
Using this package directly
Most consumers will want OptiA11y.Cms (the
Optimizely CMS 13 installable add-on) rather than this package directly. Reach for
OptiA11y.Core on its own if you're building a custom adapter for a content source OptiA11y.Cms
doesn't cover — implement HtmlFragmentParser-based fragment extraction for your source, register
the rules you want via RuleEngine, and evaluate an AuditDocument.
See the main repository README for the full
rule catalogue, architecture overview, and versioning notes (this package, OptiA11y.Rendering,
and OptiA11y.Cms ship together and must be kept in sync).
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- HtmlAgilityPack (>= 1.13.0)
-
net8.0
- HtmlAgilityPack (>= 1.13.0)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on OptiA11y.Core:
| Package | Downloads |
|---|---|
|
OptiA11y.Cms
Editorial accessibility assistance for Optimizely CMS. |
|
|
OptiA11y.Rendering
Editorial accessibility assistance for Optimizely CMS. |
|
|
OptiA11y.Cms12
Editorial accessibility assistance for Optimizely CMS 12 (EPiServer.CMS.Core 12.x). Integrates the OptiA11y content audit panel into the CMS 12 edit UI. |
GitHub repositories
This package is not used by any popular GitHub repositories.