DigitalWonderlab.AccessibilityToolkit 1.10.46

dotnet add package DigitalWonderlab.AccessibilityToolkit --version 1.10.46
                    
NuGet\Install-Package DigitalWonderlab.AccessibilityToolkit -Version 1.10.46
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="DigitalWonderlab.AccessibilityToolkit" Version="1.10.46" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="DigitalWonderlab.AccessibilityToolkit" Version="1.10.46" />
                    
Directory.Packages.props
<PackageReference Include="DigitalWonderlab.AccessibilityToolkit" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add DigitalWonderlab.AccessibilityToolkit --version 1.10.46
                    
#r "nuget: DigitalWonderlab.AccessibilityToolkit, 1.10.46"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package DigitalWonderlab.AccessibilityToolkit@1.10.46
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=DigitalWonderlab.AccessibilityToolkit&version=1.10.46
                    
Install as a Cake Addin
#tool nuget:?package=DigitalWonderlab.AccessibilityToolkit&version=1.10.46
                    
Install as a Cake Tool

Accessibility Toolkit for Umbraco

An Umbraco backoffice package that adds comprehensive WCAG 2.1 accessibility checking to your content workflow. Combines 37 server-side HTML checks with axe-core powered visual analysis — covering colour contrast, ARIA names, landmark structure, and more. Editors can run checks on individual pages or audit entire site sections, with instant scored reports, scan history, and CSV exports.

Screenshots

Page Scan Scan History
Page scan Scan history
Scan Report Site Audit History
Scan report Audit history
Printable Report
Printable report

Features

Page-Level Checks

  • Accessibility tab on every content page in the workspace
  • 37 server-side WCAG checks across Level A, AA, and AAA
  • Score gauge (0-100) with colour-coded rating
  • Issues grouped by Content / Code / Design with impact badges (critical/serious/moderate/minor)
  • Expandable detail rows showing element snippets, selectors, and fix recommendations
  • axe-core visual checks run automatically — ARIA names, colour contrast, landmark structure, and 30+ additional rules detected against the live rendered DOM
  • Element preview snippets generated for visual issues using browser canvas
  • Category filtering and impact sorting
  • Severity filtering (critical/serious/moderate/minor)
  • Score delta indicator compared with previous run
  • CSV export for offline review and reporting
  • Printable reports with executive summary, category breakdown, and per-issue detail
  • Scan history per page showing scores over time

Site Audits

  • Site audit tool — pick a content node and scan it plus all descendants in one go
  • Summary cards showing pages scanned, average score, and total issues
  • Collapsible page list — summary shown up front, per-page details expandable
  • Audit history — all past audits stored with full results, re-exportable as CSV at any time
  • Delete individual audit records or scan history entries

Dashboard

  • Accessibility Toolkit dashboard in the Content section
  • Recent Reports — paginated table of all recent page-level scans
  • Audit History — table of past site audits with sparkline trend chart, re-export, and delete
  • Site Audit form with content node picker and WCAG level selector (visual checks run automatically when enabled)
  • FAQ and Help & Services tabs for guidance and expert support
  • Settings with visible license status panel, collapsible exclusions, and data management

Visual Checks

  • Browser-based analysis powered by axe-core running against the live rendered DOM in a sandboxed iframe
  • Detects issues that static HTML analysis cannot: computed colour contrast, missing ARIA names, landmark structure, and more
  • 30+ additional rules covering WCAG A, AA, and AAA criteria complementing the 37 server-side checks
  • Runs automatically as part of every scan — no separate step or infrastructure required
  • Falls back gracefully if axe is unavailable (offline/intranet): colour contrast checks still run via DOM walking
  • Element preview snippets are captured inline for visual context in reports
  • Site audits use the selected content node picker only (no manual GUID entry)

Compatibility

  • Umbraco 17+
  • .NET 10.0
  • Compatible with Umbraco Cloud, Azure App Service, and all standard hosting environments
  • No server-side dependencies — no headless browsers, no server-side binaries, no additional infrastructure required
  • Visual checks load axe-core from cdnjs at runtime in the editor's browser; falls back gracefully if unavailable

Installation

Install via NuGet:

dotnet add package DigitalWonderlab.AccessibilityToolkit

Or search for DigitalWonderlab.AccessibilityToolkit in the NuGet Package Manager.

No additional configuration required. The package registers itself automatically via an Umbraco composer and creates its database tables on startup. Install, restart, and start scanning — nothing else to set up.

Usage

Individual Page Check

  1. Navigate to any content page in the Umbraco backoffice
  2. Click the Accessibility tab in the content workspace
  3. Select a WCAG level (A, AA, or AAA)
  4. Click Run Check
  5. Review the score, impact summary, and issues
  6. Click Export CSV to download the report

Site Audit

  1. Go to the Content section and open the Accessibility Toolkit dashboard
  2. Click Pick Content Node to select a root node
  3. Select a WCAG level
  4. Click Run Audit
  5. Review the summary cards and expand the page list for per-page results
  6. Click Export CSV to download the full audit report

Re-Exporting Past Audits and Page Runs

Past audits are stored with their full results. In the Audit History table on the dashboard, click Export on any row to regenerate the CSV.

Page-level run history (in the content workspace Accessibility tab) also includes Export and CSV actions per history row.

WCAG Checks Included (37 checks)

Level A (24 checks)

Check WCAG Criterion Detects
Heading Hierarchy 1.3.1 Skipped heading levels, multiple/missing h1, empty headings
Image Alt Text 1.1.1 Missing/empty alt attributes, filename-as-alt, generic alt text
Form Labels 1.3.1, 4.1.2 Form inputs without associated labels
Link Text 2.4.4 Empty links, generic link text ("click here", "read more")
Language Attribute 3.1.1 Missing or invalid lang attribute on html element
ARIA Attributes 4.1.2 Broken aria references, invalid roles, aria-hidden on focusable
Semantic HTML 1.3.1 Missing landmark elements (main, nav, header, footer)
Table Structure 1.3.1 Data tables missing headers, scope attributes, or captions
Page Title 2.4.2 Missing or empty page title
Duplicate IDs 4.1.1 Duplicate id attributes in the document
Interactive Elements 4.1.2 Interactive elements missing accessible names
Color Contrast (static) 1.4.3 Inline styles with insufficient contrast ratios
Media 1.2.1 Audio/video elements missing captions or descriptions
Iframe Title 2.4.1 Iframes missing title attributes
List Structure 1.3.1 Incorrect list nesting and structure
Form Grouping 1.3.1 Related form controls not grouped with fieldset/legend
Target Blank 2.4.4 Links opening new windows without warning
Bypass Blocks 2.4.1 Missing skip navigation links
Tabindex 2.4.3 Positive tabindex values disrupting natural tab order
Keyboard Events 2.1.1 Mouse-only event handlers without keyboard equivalents
Label in Name 2.5.3 Accessible name doesn't contain visible label text
Autocomplete 1.3.5 Missing or invalid autocomplete attributes on inputs
Media Alternatives 1.2.1 Media without text alternatives
Error Identification 3.3.1 Form error messages not programmatically associated

Level AA (7 checks)

Check WCAG Criterion Detects
Meta Viewport 1.4.4 Zoom disabled via user-scalable=no or restrictive maximum-scale
Language of Parts 3.1.2 Content in other languages missing lang attribute
Status Messages 4.1.3 Dynamic status messages missing ARIA live regions
Text Spacing 1.4.12 Content that may break with adjusted text spacing
Reflow 1.4.10 Horizontal scrolling at 320px viewport width
Input Purpose 1.3.5 Common input fields missing autocomplete attributes
Focus Not Restricted 2.4.11 Focus trapped within components

Level AAA (6 checks)

Check WCAG Criterion Detects
Link Purpose (Full) 2.4.9 Links not understandable out of context
Section Headings 2.4.10 Content sections without headings
Enhanced Contrast 1.4.6 Inline styles below 7:1 contrast ratio
Target Size 2.5.5 Interactive elements smaller than 44x44px
Abbreviations 3.1.4 Abbreviations without expansion
Reading Level 3.1.5 Content readability indicators

Configuration

No configuration is required. The package works out of the box with all features enabled.

Telemetry

The package collects anonymous usage telemetry to help improve the product. This is opt-out via the Settings tab on the dashboard.

No page URLs, page content, or personally identifiable information is collected. Telemetry events include scan and audit outcomes (scores, durations, pass/fail) with an anonymised site hash.

Audit Exclusions

You can exclude specific document types and individual pages from site audits via the Settings tab on the dashboard. Excluded items are stored in the database and persist across restarts.

How It Works

The tool fetches the published HTML of each page server-side using HttpClient, parses it with HtmlAgilityPack, and runs 37 rule-based checks against the DOM. After the server-side analysis, visual checks run client-side: the page is loaded in a sandboxed iframe in the editor's browser, axe-core is injected to run 30+ additional accessibility rules against the live rendered DOM, and a colour contrast analyser walks the computed styles. Issues from both stages are combined, deduplicated, and scored. Results are stored in the database (dwAccessibilityResults for per-page scans, dwAccessibilityAudits for full site audits) so history and re-exports are always available.

Issues / Suggestions

To report an issue or suggest a feature, please use the GitHub issue tracker: https://github.com/dwlkev/DigitalWonderlab.AccessibilityToolkit/issues

Product Compatible and additional computed target framework versions.
.NET 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.10.46 228 4/9/2026
1.10.45 161 3/24/2026
1.10.29 149 3/13/2026
1.10.24 127 3/13/2026
1.10.22 121 3/13/2026
1.10.20 127 3/13/2026
1.10.18 120 3/13/2026