Accessibility Statement

LoyaltyCards v2.2.4+40  ·  Last Updated: September 7, 2026  ·  Compliance Target: WCAG 2.1 Level AA

The known dark-mode text-legibility risk was checked and ruled out on July 20, 2026 (see "Dark Mode" below) — though two unrelated, genuinely invisible dark-mode text bugs were later found and fixed on a shared screen, which narrows what that check actually proved. A first round of VoiceOver semantic-labeling and live-region work landed August 31, 2026 for both apps — see "Screen Reader Support" and Roadmap below.

LoyaltyCards is committed to ensuring digital accessibility for all users, including those with disabilities. We strive to continually improve the user experience for everyone and apply relevant accessibility standards.

Current Status

🟡 Partial Compliance. LoyaltyCards is partially conformant with WCAG 2.1 Level AA — some parts of the application do not yet fully conform.

Implemented

Partial Implementation

Screen Reader Support (VoiceOver)

Basic support via iOS defaults, supplemented August 31, 2026 with targeted work on the highest-traffic screens of both apps. Customer app: loyalty card list items and the card detail stamp grid now expose one combined, accurate description instead of many unlabeled elements; previously-unlabeled icon buttons (flashlight, settings, search-clear) got semantic labels; the QR code image itself now describes what scanning it will do. Supplier app: previously-unlabeled icon-only buttons (back navigation, settings, flashlight toggles, stamp-count +/-) got tooltips. This was a targeted pass on specific screens, not an exhaustive audit — custom widgets elsewhere in either app may still lack semantic labels.

Dynamic Type

Body text scales with system settings; some headings use fixed sizes; QR code size doesn't scale (functional limitation); card layout may break at extreme text sizes (200%+).

Dark Mode

The app follows the device's system light/dark appearance (both apps' main.dart wire up real, distinct light/dark ColorScheme objects, defaulting to system mode), but there is no in-app toggle to choose Light/Dark/System independent of the device setting. Verified July 20, 2026: every text-color usage most likely to cause an illegible-text bug in dark mode (21 instances across both apps, all using the app's branded `BrandColors.textPrimary`/`textSecondary` symbols) was checked against its background — all of them pair fixed text with a fixed background (branded info/success/warning badges), so none go illegible in dark mode. This is a deliberate, pre-existing pattern, not an oversight. The visible effect is that these badges keep a fixed light background regardless of theme, so in dark mode they can look like a light-colored card on an otherwise dark screen — a style inconsistency, not a legibility problem. That check's scope had a real limit, though: two separate, genuinely invisible-text bugs were later found and fixed on the "Tell a Friend"/"Tell a Business" screen shared by both apps — neither used the symbols the check covered. One (found August 30) was a hardcoded dark headline color invisible on the dark background; the other (found August 31, while capturing Play Store screenshots) was a missing app-bar text color that defaulted to dark-on-dark. Both are fixed now, but their existence means "verified" above should be read as "no issues found in the specific pattern checked," not "no dark-mode legibility bugs anywhere."

Not Yet Implemented

Known Accessibility Barriers

QR Code Scanning (visual requirement)

Users with visual impairments cannot scan QR codes independently, and there's currently no non-visual alternative. Workaround: request assistance from business staff, or have the business scan the customer's QR code and verbally confirm details. Voice-guided scanning and manual code entry are potential future enhancements, not currently scheduled. NFC as a non-visual alternative would require architecture changes and is not on the current product roadmap.

Card Visual Design

Cards use color and layout to convey information, which can be harder for color-blind or screen-reader users. Business name and stamp count are always present as text, mitigating this partially.

Limited Screen Reader Optimization

VoiceOver support relies mostly on iOS defaults, with targeted custom work (August 31, 2026) on each app's highest-traffic screens — not yet a comprehensive pass across either app. Mitigations: all buttons have text labels, navigation is linear and predictable, and success/error/info/warning messages now announce automatically app-wide via the apps' shared feedback component.

Fixed-Color Badges Don't Adapt to Dark Mode

See "Dark Mode" above — branded callout badges keep a fixed light background regardless of theme (verified as a style issue, not a legibility one), and users cannot force a light/dark mode independent of their device setting.

Testing Performed

Manual testing has covered basic VoiceOver navigation, Dynamic Type at system sizes, Reduce Motion, manual WCAG contrast checks, and touch target measurement. Not yet run as part of CI/CD, but the August 31, 2026 semantic-labeling work has one dedicated automated widget test asserting on the actual semantics tree (not just visible text) for the Customer app's wallet home screen — no broader automated accessibility testing exists yet, and no formal audit or testing with users who have disabilities has been performed. Notably, neither invisible-text dark-mode bug described under "Dark Mode" above was caught by a dedicated accessibility pass — both were found through ordinary manual use.

Roadmap

Before the final pre-submission build

Medium priority (may defer post-v1.0)

Under consideration (not committed, post-v1.0)

Conformance Claims

LevelStatus
APartially Conformant
AAPartially Conformant
AAANot Conformant

Evaluation Method: self-assessment (manual testing + targeted code review). Last Evaluation: April 18, 2026 (general); dark-mode legibility risk specifically re-checked July 20, 2026; VoiceOver semantic-labeling and live-region work landed August 31, 2026; this page corrected September 7, 2026 to log two invisible-text dark-mode bugs found and fixed after the July check. Next Evaluation: before the final pre-submission build, covering the remaining open roadmap items.

Legal Compliance Context

Relevant standards we track: Americans with Disabilities Act (ADA) Title III and Section 508 in the US; WCAG 2.1 and EN 301 549 internationally; Apple's iOS Human Interface Guidelines and App Store Review Guideline 2.5.18 (Accessibility). We are actively working toward full WCAG 2.1 Level AA compliance.

Report an Accessibility Issue

Email: ian.hamlet@dotconnected.com — subject line "Accessibility Issue - [App Name]". Please include which app, device/iOS version, assistive technology used (if any), and a description of the barrier. We aim to respond within 48 hours.

LoyaltyCards is committed to making our applications accessible to all users. We welcome feedback and will continue improving accessibility with each release.