Writing
Notes on building honestly.
-
May 25, 2026
Why we built reala11y after the FTC v. accessiBe ruling
On April 21, 2025 the FTC ordered accessiBe to pay $1M. We built reala11y to be the honest alternative.
-
January 20, 2026 · Guides
Block Themes and Full-Site Editing: WordPress Accessibility
Block themes and full-site editing change how WordPress builds navigation, headings, and landmarks. Here are the common accessibility pitfalls and how to catch them.
-
November 10, 2025 · News
WCAG 3.0 and APCA: the future contrast model, explained
WCAG 3.0 is an early W3C draft and APCA is its candidate contrast method. How it differs from 1.4.3, why it's not a target yet, and what to actually do today.
-
September 15, 2025 · Guides
Write an Accessibility Statement That Doesn't Overpromise
A practical, honest structure for a WordPress accessibility statement that reflects your real conformance status—no overclaiming, no legal exposure.
-
June 30, 2025 · News
The EAA is now enforceable: what WordPress owners should do
The European Accessibility Act became enforceable on 28 June 2025. What it covers, who's in scope, and a practical, honest checklist for WordPress sites.
-
April 25, 2025 · News
After the FTC Order: Why Overlay Widgets Don't Fix Accessibility
The FTC fined accessiBe $1M for overstated overlay claims. Here's why overlays don't fix the HTML — and what genuine WordPress remediation looks like.
-
February 18, 2025 · Guides
Automated vs Manual Accessibility Testing: Why You Need Both
Scanners catch roughly 30–40% of WCAG issues by criteria. Here's what automation finds, what only a human can judge, and how to combine them.
-
August 20, 2024 · Guides
Captions and Transcripts for WordPress Video and Audio
A practical guide to WCAG 1.2.2 captions and 1.2.1 transcripts for WordPress video and audio — what the criteria require, honest tooling options, and where automation stops.
-
June 10, 2024 · Guides
Accessible form validation errors: aria-invalid and focus
Make WordPress form errors usable: associate messages with fields via aria-describedby, set aria-invalid, manage focus, and announce inline validation. WCAG 3.3.1 and 3.3.3.
-
April 30, 2024 · News
The DOJ ADA Title II web rule: what WordPress teams should know
In April 2024 the DOJ set WCAG 2.1 AA as the standard for state and local government web content. What it means for WordPress site owners, devs, and vendors.
-
January 23, 2024 · Guides
Respecting prefers-reduced-motion on WordPress
Why default-on animation hurts users who get sick from it, and how to build motion that respects prefers-reduced-motion on your WordPress site.
-
December 5, 2023 · Guides
WCAG 2.2 Target Size (Minimum): the 24px rule for WordPress
WCAG 2.2's new Target Size (Minimum) criterion asks for 24x24 CSS pixel tap targets. Here's what 2.5.8 means for WordPress sites, with its spacing exception.
-
November 13, 2023 · News
Section 508 and WordPress: what it is and who it applies to
Section 508 sets accessibility requirements for US federal IT and maps to WCAG 2.0 AA. What it covers, who's bound by it, and what it means for WordPress site owners.
-
October 10, 2023 · News
WCAG 2.2 is here: the nine new criteria, explained
Blog post written, fact-checked against the site's published WCAG 2.2 guide, and passed through the legal-safe-language review.
-
July 24, 2023 · Guides
Accessible navigation menus in WordPress: keyboard and dropdowns
Build accessible WordPress nav: semantic <nav>, full keyboard operation, accessible submenus, aria-current, and skip-to-nav. Fix the common block and classic-menu issues.
-
April 17, 2023 · Guides
Non-text Contrast (WCAG 1.4.11): the 3:1 rule for UI
WCAG 1.4.11 asks UI components, focus indicators, and meaningful graphics to hit 3:1 contrast. Here's what counts, how to check it, and how to fix it on WordPress.
-
February 21, 2023 · Guides
Visible Focus Indicators: Don't Remove the Outline (WCAG 2.4.7)
Removing the focus outline breaks keyboard navigation. Here's why it matters for WCAG 2.4.7, and how to style a focus indicator that looks good and works.
-
November 8, 2022 · Guides
Accessible data tables in WordPress: th, scope, captions
How to build accessible data tables in WordPress content with proper th headers, scope, and captions — plus how to tell when you shouldn't use a table at all.
-
September 19, 2022 · Guides
Building accessible modal dialogs on WordPress
Accessible modals need focus trapping, Escape to close, focus return, and the right ARIA. Here's how to build them right — and fix the popups WordPress plugins ship broken.
-
July 12, 2022 · Guides
Link text beyond "click here": writing links that work out of context
Generic links like "click here" and "read more" fail WCAG 2.4.4. Here's how to write link text that makes sense out of context on WordPress.
-
May 9, 2022 · Guides
Text Spacing (WCAG 1.4.12): don't clip text on WordPress
WCAG 1.4.12 says users can override line, letter, word, and paragraph spacing without losing content. Here's how to test it on WordPress and the CSS gotchas that fail it.
-
March 15, 2022 · Guides
Skip Links and ARIA Landmarks: Bypass Repeated Navigation
Skip links and ARIA landmarks let keyboard and screen-reader users jump past repeated navigation (WCAG 2.4.1). Here's how they work on WordPress and how to add them.
-
January 24, 2022 · Guides
Reflow and zoom to 400% (WCAG 1.4.10) on WordPress
WCAG 1.4.10 Reflow asks your content to survive 400% zoom with no horizontal scrolling. Here's what that means for WordPress themes, and the viewport mistake to avoid.
-
November 16, 2021 · Guides
Accessible forms in WordPress: labels, errors, instructions
Build accessible WordPress forms: visible labels, programmatic association, clear errors and instructions. A practical, honest guide to WCAG 3.3.2 and 3.3.1.
-
September 13, 2021 · Guides
Accessible PDFs on WordPress (and when to offer HTML instead)
Why PDFs are so often inaccessible, the tagging, reading-order and alt-text basics that fix them, and why an HTML alternative is usually the better answer on WordPress.
-
June 8, 2021 · Guides
A 10-minute keyboard accessibility test for WordPress
Run a quick keyboard-only pass on any WordPress site: tab order, visible focus, skip links, and keyboard traps. Practical steps, no special tools.
-
March 22, 2021 · Guides
Your first screen-reader test: a practical NVDA and VoiceOver workflow
A beginner's screen-reader testing workflow with NVDA on Windows and VoiceOver on Mac — the keys to learn, what to listen for, and the issues you'll find first.
-
January 19, 2021 · Guides
Why Heading Order Matters for Screen Readers
Skipped heading levels break screen-reader navigation. Here's why H1–H6 order matters and how to fix a broken outline in WordPress.
-
November 30, 2020 · Guides
How assistive tech computes an accessible name
label, aria-label, aria-labelledby, alt, title — the accessible name computation decides what a screen reader announces. Here's the order it uses and how to control it.
-
September 22, 2020 · Guides
Meeting WCAG 1.4.3 colour contrast without ruining your design
How to hit WCAG 1.4.3 contrast ratios (4.5:1 and 3:1) on WordPress without wrecking your brand — the numbers, the tools, and the mistakes to skip.
-
June 15, 2020 · Guides
ARIA landmarks and roles: when to use native HTML5 instead
A practical guide to landmark regions (banner, nav, main, contentinfo) — when native HTML5 elements are enough, when to reach for roles, and the WordPress theme pitfalls to avoid.
-
April 14, 2020 · Guides
How to Write Effective Alt Text in WordPress
A practical guide to alt text in WordPress: what to include, decorative vs meaningful images, when to use empty alt, and the common mistakes to avoid.