The Daily Oracle aims to meet WCAG 2.1 Level AA across every page on this site and inside the daily-ritual web app. This page is reviewed and updated as we test, ship and improve.
Last reviewed: .
Our standard
We target the Web Content Accessibility Guidelines (WCAG) 2.1, Level AA, published by the W3C. Where individual surfaces can comfortably meet Level AAA criteria (body-text contrast, focus indication, font sizing), we apply those too.
What we’ve done
Semantic structure
- Every page uses the standard landmarks
<header>,<nav>,<main>, and<footer>so screen readers can navigate by region. - One
<h1>per page; heading levels are used in logical, descending order. - A “Skip to the Oracle” link is the first focusable element on every page.
- The hidden engine bay that powers the app is marked
aria-hidden="true"andinertso assistive technologies ignore it entirely.
Keyboard & focus
- Every interactive element is reachable with the Tab key in source order.
- Focus rings are 3 px solid, high-contrast cyan on dark, deep-blue on light, with a 3 px offset and rounded corners.
- Modal dialogs and the first-run coachmark trap focus and restore it to the trigger on close.
- The Esc key always closes any open modal or menu.
- No element is reachable only by mouse.
Colour, contrast & theme
- Body text contrast: ≥ 7:1 (AAA) on both dark and light themes.
- Gold buttons: 8.4:1 (ink text on antique-gold).
- Light-mode gold accent: 4.9:1 (AA) — deliberately darker than the dark-mode gold so the same token always meets AA.
- No information is conveyed by colour alone — status badges always include a label.
- A high-contrast preset is applied automatically when the OS signals
prefers-contrast: more. - Light and dark themes both pass independent contrast audits; the OS preference (
prefers-color-scheme) drives the default.
Motion & animation
- The ambient breathing halo, page-entry animation, and wheel spin are all gated by
prefers-reduced-motion; when reduced motion is requested they snap directly to their final state. - No content auto-scrolls, auto-plays sound, or flashes.
- Hover lifts are limited to a soft shadow swap; no parallax, no horizontal carousels.
Forms & inputs
- Every input has a programmatically-associated
<label>. - Required fields are marked semantically (
required) and visually with a short note above the field. - Inputs render at 16 px font-size on mobile so iOS does not zoom on focus.
- Error messages appear inline next to the field they describe, not only via colour.
- The contact form ships with a honeypot field to keep the visible form free of CAPTCHA friction.
Sizing & touch targets
- Tap targets in the app: ≥ 48 px.
- Tap targets elsewhere on the site: ≥ 44 px.
- Text is fluid (
clamp()-based) and reflows cleanly down to 320 px viewport width and up to 200% browser zoom. - The page never causes horizontal scroll on standard viewports.
Live regions & status
- The Fortune’s Wheel spin announces “The wheel is turning…” and then the result via a polite live region.
- The daily reveal is wrapped in an
aria-live="polite"container so the three signs are announced together. - Form submission states (success, error) are also announced as live status messages.
Images & media
- Every meaningful image has a descriptive
altattribute; decorative images usealt=""oraria-hidden="true". - The Fortune’s Wheel canvas carries a textual
aria-labeldescribing what it is. - Embedded video, where used, ships with captions when the source upload was captioned; we do not embed uncaptioned video on the marketing site.
Testing & assistive technologies
We test with the following combinations, on the most recent two major versions of each browser:
- VoiceOver on macOS Safari and iOS Safari.
- NVDA on Windows Firefox and Chrome.
- TalkBack on Android Chrome.
- Keyboard-only navigation, Windows High Contrast Mode, and the Forced Colors media query.
- Automated checks: axe-core, Lighthouse Accessibility audit, and the W3C Markup Validator on representative pages.
Known limitations
- The decorative Fortune’s Wheel canvas exposes a textual fallback but cannot be navigated with arrow keys. The reveal text below the canvas is fully accessible and remains the canonical reading.
- Embedded video sometimes lacks captions if the source upload was uncaptioned. We are progressively replacing those.
- PDF downloads, where used, are reviewed for accessibility before publication, but some legacy documents may still need remediation. Tell us and we will reissue.
Alternative formats
If a page is hard for you to read or use, we’ll provide an alternative format on request — plain-text, large-print, or a phone walk-through. There is no cost.
Feedback — tell us about a barrier
If you find a barrier on this site, please tell us. Choose “An accessibility report” on the Contact page, or write directly to winner@yourdailyoracle.com.
We aim to acknowledge accessibility reports within two business days and to ship a fix within fifteen business days — sooner if the barrier blocks core use of the site.
Enforcement
If we cannot resolve an accessibility issue to your satisfaction, you can raise it with your local regulator: the U.S. ADA, the Accessible Canada Act, the EU Web Accessibility Directive, or the equivalent in your jurisdiction.