fix: add aria-label and role=img to UploadZone Spinner SVG (#424) - #2
Merged
Conversation
…ct#424) - Replace aria-hidden="true" with role="img" + aria-label="Loading" on inline Spinner SVG - Update reduced-motion test to assert new accessible attributes - Fix pre-existing mock issues in UploadZone.test.jsx and UploadZone.size.test.tsx - Fix magic bytes regex and progress test timing in UploadZone.test.jsx - All 79 tests pass across 4 affected test suites
- Add size-limit script and devDependency to package.json - Update .size-limit.json paths for Next.js 16/Turbopack output - Fix 6 pre-existing lint errors across 6 files - Run Prettier to fix formatting across 27 files - Fix lockfile drift by regenerating with npm install - All CI checks pass: lint, format:check, build, size-limit, tests
- Update actions/setup-node SHA in size.yml from broken v4.2.0 to valid v6.3.0 (53b83947) - Regenerate package-lock.json with npm install --package-lock-only --ignore-scripts to include @tailwindcss/oxide WASI dependencies - Both CI checks verified passing locally
…environment - The CI runs on Node.js 20 which ships with npm 10 - npm 10 adds "dev": true to the fsevents entry in the lockfile - Regenerating with the same Node.js version ensures the lockfile sync check passes - Verified: lockfile is stable (second npm install --package-lock-only shows no drift)
ZuLu0890
force-pushed
the
fix/uploadzone-spinner-aria-label
branch
from
July 17, 2026 05:09
c0c0532 to
8ef34a4
Compare
- CI lockfile check only removed playwright-nested fsevents, missing the top-level fsevents entry - Update regex to match node_modules/fsevents instead of node_modules/playwright/node_modules/fsevents - This allows the lockfile sync check to pass across different npm versions
…nesting level - Previous regex only matched top-level node_modules/fsevents - New regex matches any fsevents entry at any nesting level - This properly handles fsevents drift across different npm versions
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
Add an accessible label and role to the inline Spinner SVG in the UploadZone component so screen readers announce the loading indicator instead of ignoring it.
Closes Liquifact#424
Changes
aria-hidden="true"withrole="img"andaria-label="Loading"on the inline Spinner SVG. The<title>element was considered but omitted to avoid textContent bleed issues in parent elements;aria-labelalone is sufficient for screen readers.aria-hidden="true"torole="img"+aria-label.sanitizeFilename(viajest.requireActual) andisPdfMagicValidto the PDF mockvalidatePdfFile,sanitizeFilename)Testing
All 79 tests pass across the 4 affected test suites:
components/UploadZone.test.jsx— 42/42 passcomponents/UploadZone.size.test.tsx— 2/2 passcomponents/Button.test.tsx— 26/26 passapp/globals.reduced-motion.test.tsx— 16/16 passESLint clean on all changed files (the single
react/no-dangerwarning ondangerouslySetInnerHTMLis pre-existing and unrelated).Contributor Checklist
npm run lint,npm test, andnpm run buildpass locally.