Feature/accessibility improvements - #348
Open
janetpius-cmd wants to merge 4 commits into
Open
Conversation
Fix VaultCard's StatusChip (the dense row called out in the issue) to meet the 48x48dp Android minimum touch target by wrapping it in a Box(Modifier.sizeIn(minWidth/minHeight = 48.dp)). Audit the rest of Screens.kt and Views.swift interactive controls (IconButtons, notification actions, iOS toolbar buttons) and document findings in docs/touch-target-audit.md — all were already compliant. Add an automated regression guard: AccessibilityScanTest.kt runs the Android Accessibility Test Framework (ATF) via Espresso's AccessibilityChecks against VaultListScreen, wired into a new accessibility-scan CI job in android-ci.yml so a shrinking tap target fails the build instead of being caught manually later.
Add EthosProtocolTheme(highContrast: Boolean) which overrides the error and tertiaryContainer/onTertiaryContainer color roles (used by the expiring-soon warning and offline banner) with fixed values audited to meet WCAG AA (4.5:1) contrast, since Material3 dynamic color derives its palette from the wallpaper and can't guarantee that for every generated palette. Add a "Dynamic-color contrast pass" section to docs/manual-qa-checklist.md describing how to manually sample wallpaper-derived palettes and verify status colors, plus docs/contrast-audit-readme.md documenting the change and why the audit stays manual rather than automated.
Add ScreenshotFontScaleTest.kt with a Paparazzi snapshot matrix at 1.0x/1.3x/2.0x font scale for the vault list, deposit, and withdraw flows named in docs/manual-qa-checklist.md's font-scale pass — the portion the checklist calls out as "a good candidate to convert into ScreenshotDarkTest/ScreenshotLightTest-style automated snapshot coverage." Picked up automatically by the existing verifyPaparazziDebug Gradle task, so no CI job changes were needed. Trim the checklist's font-scale section to note the automated coverage and narrow the remaining manual work to iOS (no snapshot tooling wired up yet) and the 2FA screens (not yet in the matrix). TalkBack/VoiceOver stays manual, as screen-reader behavior isn't captured by snapshots.
Add explicit screen-reader announcements on offline<->online state transitions: View.announceForAccessibility in VaultListScreen's LaunchedEffect(state.isOffline) on Android, and UIAccessibility.post(.announcement) in VaultListView's .onChange(of: vaultStore.vaultsCacheAge == nil) on iOS. The banner being labeled only covered the case where it's already visible on first render; a transition while the screen is open needs an explicit announcement call. Add a checklist item to docs/manual-qa-checklist.md's TalkBack/ VoiceOver pass to verify both directions of the transition announce correctly, and note that the WebSocket connection-status indicator proposed in ethos-protocol#254 doesn't exist yet but should reuse this pattern. docs/offline-banner-live-region-readme.md documents why this stays a manual check rather than an automated test.
|
@janetpius-cmd Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Closes #284
Closes #285
Closes #286
Closes #287
Changes
Testing
Parity checklist
This PR does not add, change, or remove any user-facing feature on either
platform — no PARITY.md update needed.
— OR —
This PR adds/changes/removes a user-facing feature. I have updated PARITY.md:
Related issues