Skip to content

fix(frontend/Snackbar): announce correctly, pause timer on interaction - #3967

Merged
mkurapov merged 3 commits into
mainfrom
sidvishnoi/a11y-snackbar
Aug 12, 2026
Merged

fix(frontend/Snackbar): announce correctly, pause timer on interaction#3967
mkurapov merged 3 commits into
mainfrom
sidvishnoi/a11y-snackbar

Conversation

@sidvishnoi

@sidvishnoi sidvishnoi commented Aug 11, 2026

Copy link
Copy Markdown
Member

Changes proposed in this pull request

Multiple a11y fixes to Snackbar:

  • Add accessible role and make sure it's reliably announced
  • Ensure hide timer could be paused if user hovers (or focuses) over notification (it should stay, not disappear immediately if user is interacting). Also, increase timeout from 2s to 5s.
  • Move Snackbar to start in tab-order, so one doesn't have to tab till end to interact with it (by that time, notification goes away)

In future, we can get rid of SnackbarAnnouncer when ariaNotify is better supported.

Context

Follow up of #3961

Checklist

  • Related issues linked using fixes #number
  • Tests added/updated
  • Make sure that all checks pass
  • Bruno collection updated (if necessary)
  • Documentation issue created with user-docs label (if necessary)
  • OpenAPI specs updated (if necessary)

@netlify

netlify Bot commented Aug 11, 2026

Copy link
Copy Markdown

Deploy Preview for brilliant-pasca-3e80ec canceled.

Name Link
🔨 Latest commit 0c747e2
🔍 Latest deploy log https://app.netlify.com/projects/brilliant-pasca-3e80ec/deploys/6a7c46ebcd7aaa0008ef3d84

@github-actions github-actions Bot added the pkg: frontend Changes in the frontend package. label Aug 11, 2026
@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown

🚀 Performance Test Results

Test Configuration:

  • VUs: 4
  • Duration: 1m0s

Test Metrics:

  • Requests/s: 42.58
  • Iterations/s: 14.19
  • Failed Requests: 0.00% (0 of 2563)
📜 Logs

> performance@1.0.0 run-tests:testenv /home/runner/work/rafiki/rafiki/test/performance
> ./scripts/run-tests.sh -e test -k -q --vus 4 --duration 1m

Cloud Nine GraphQL API is up: http://localhost:3101/graphql
Cloud Nine Wallet Address is up: http://localhost:3100/
Happy Life Bank Address is up: http://localhost:4100/
cloud-nine-wallet-test-backend already set
cloud-nine-wallet-test-auth already set
happy-life-bank-test-backend already set
happy-life-bank-test-auth already set
     data_received..................: 925 kB 15 kB/s
     data_sent......................: 2.0 MB 33 kB/s
     http_req_blocked...............: avg=6.71µs   min=2.04µs   med=5.29µs   max=745.48µs p(90)=6.81µs   p(95)=7.63µs  
     http_req_connecting............: avg=322ns    min=0s       med=0s       max=244.43µs p(90)=0s       p(95)=0s      
     http_req_duration..............: avg=93.24ms  min=7.34ms   med=76.1ms   max=483.51ms p(90)=165.82ms p(95)=189.82ms
       { expected_response:true }...: avg=93.24ms  min=7.34ms   med=76.1ms   max=483.51ms p(90)=165.82ms p(95)=189.82ms
     http_req_failed................: 0.00%  ✓ 0         ✗ 2563
     http_req_receiving.............: avg=96.62µs  min=25.55µs  med=84.88µs  max=1.96ms   p(90)=122.24µs p(95)=164.67µs
     http_req_sending...............: avg=34.13µs  min=7.91µs   med=25.78µs  max=2.58ms   p(90)=40.75µs  p(95)=54.6µs  
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s      
     http_req_waiting...............: avg=93.11ms  min=7.16ms   med=75.96ms  max=483.38ms p(90)=165.71ms p(95)=189.75ms
     http_reqs......................: 2563   42.581421/s
     iteration_duration.............: avg=281.48ms min=174.39ms med=269.09ms max=881.51ms p(90)=348.24ms p(95)=382.78ms
     iterations.....................: 854    14.188269/s
     vus............................: 4      min=4       max=4 
     vus_max........................: 4      min=4       max=4 

<div
role={message?.type === 'error' ? 'alert' : 'status'}
aria-live={message?.type === 'error' ? 'assertive' : 'polite'}
aria-atomic='true'

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is technically redundant, but practically useful. With Firefox in particular.

@sidvishnoi sidvishnoi changed the title fix(frontend/Snackbar): a11y fixes fix(frontend/Snackbar): announce correctly, pause timer on interaction Aug 12, 2026
Comment thread packages/frontend/app/root.tsx Outdated
Comment thread packages/frontend/app/root.tsx Outdated
@sidvishnoi
sidvishnoi requested a review from JoblersTune August 12, 2026 09:27
Comment thread packages/frontend/app/root.tsx Outdated
@mkurapov
mkurapov merged commit 4b97e19 into main Aug 12, 2026
38 of 58 checks passed
@mkurapov
mkurapov deleted the sidvishnoi/a11y-snackbar branch August 12, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg: frontend Changes in the frontend package.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants