Skip to content

Open Accessibility Features

Open Accessibility is built around a visitor-facing widget, backed by a shared targeting layer for site owners and theme developers. That means the plugin can stay useful across more themes without hardcoding behavior for one specific layout.

Visitor Reading Controls

These controls help visitors adapt written content to their needs:

  • Text size increases or decreases readable body copy and headings without blindly scaling every UI element on the page.
  • Line height increases spacing between lines on readable text targets.
  • Letter spacing and word spacing can be enabled by the site owner for additional reading comfort.
  • Readable font options let visitors switch supported content to readability-focused typefaces when those font options are enabled.
  • Text alignment lets visitors adjust content alignment when centered or narrow theme layouts are difficult to read.
  • Skip to content gives keyboard users a faster route into the main content. It resolves a real target even on themes without an #content element, moves keyboard focus to that target rather than only scrolling, and sits above sticky headers and other theme chrome.
  • Reading guide displays a horizontal guide that follows pointer movement.
  • Reading mask dims the page except for a band that tracks the pointer, for visitors who want stronger focus than the guide line provides.
  • Focus outline helps keyboard users see where focus is on the page.
  • Link underlining makes links easier to identify in content areas.
  • Hide images can reduce visual clutter in targeted content.
  • Pause animations helps reduce motion from animated elements.

Color And Visual Controls

  • High contrast mode.
  • Negative contrast mode.
  • Light background mode.
  • Dark background mode.
  • Grayscale mode scoped through the shared target resolver for content/media surfaces.

Contrast modes still use body-level classes. The targeting layer is in place so more controls can become increasingly precise over time. As of 1.4.01, switching on a contrast mode no longer leaves the widget itself unreachable.

Site Owner Settings

Settings live under the Accessibility admin menu, organized into General, Design, Position, Features, Statement, Links, and Advanced tabs.

  • Widget position, icon, size, colors, and display settings.
  • Per-feature toggles so a site owner can enable only the tools that make sense for a site.
  • Panel Title to rename the widget heading without code.
  • Links tab for optional Help and Feedback links in the widget panel, plus the Sitemap link.
  • Accessibility statement generator.
  • Open Links in Same Tab, an opt-in setting that strips target="_blank" site-wide to address WCAG 2.1 SC 3.2.5. Off by default because it changes how every link on the site opens.
  • Usage Logging, an opt-in setting under Advanced. Feature usage is recorded only when enabled, and it is off by default.
  • Shortcode support for placing the widget in a specific template or content area.
  • Visitor preferences saved in browser local storage so chosen settings persist between visits.

Page Builder And Theme Compatibility

Content detection handles builder-generated markup, including Divi. Recent releases were tested against Divi, Blocksy, Neve, Sydney, Hestia, Hello Elementor, Astra, GeneratePress, OceanWP, Kadence, and Twenty Twenty-Five, on WordPress 7.1 with PHP 8.4 and PHP 8.5.

Themes that need more control can use the filters and attributes in Theme And Developer Integration.

Targeting Layer

Introduced in 1.3.02, the targeting layer resolves where controls should apply before changing the page. It is designed to avoid common theme problems like oversized navigation, broken sidebar widgets, distorted media, or fixed-height cards clipping larger text.

The resolver works with these groups:

  • roots: allowed content regions such as main, article, .entry-content, and block content wrappers.
  • readable_text: paragraphs, lists, table cells, labels, captions, blockquotes, and similar readable copy.
  • headings: h1 through h6.
  • links: links inside allowed content roots.
  • media: images, pictures, video, audio, iframes, embeds, objects, SVGs, and canvas elements.
  • interactive: links, buttons, inputs, selects, textareas, summaries, and tabindex-enabled controls.
  • layout_containers: opt-in containers that may need overflow, height, or line-clamp relief when text grows.
  • excluded: widgets, navigation, sidebars, code blocks, screen-reader-only text, and explicit ignore regions.

Developer Integration Points

Open Accessibility gives theme developers four ways to refine behavior:

  • PHP filters for global targeting rules, widget strings, panel title, panel links, and skip-to-content candidates.
  • HTML attributes for template-level opt-ins and opt-outs.
  • window.OpenAccessibility for JavaScript-driven refreshes and state handling.
  • Browser-side diagnostics for selector and target inspection.

The stable HTML attributes are:

  • data-oa-root
  • data-oa-target
  • data-oa-ignore
  • .open-accessibility-ignore
  • data-oa-relax-layout
  • data-oa-preserve-layout

See Theme And Developer Integration for examples.

Performance Posture

Open Accessibility is designed to be lightweight, but any site-level accessibility feature should still be tested against the active theme, cache layer, ad stack, and real content. The targeting resolver does more work than a static stylesheet, but it also avoids many expensive and brittle whole-page overrides.