Skip to content

fix(#163): MEDIUM: errors are never announced, and a four-second toast is the only channel - #435

Merged
BeSovereign merged 1 commit into
mainfrom
fix/issue-163
Oct 15, 2026
Merged

BeSovereign merged 1 commit into
mainfrom
fix/issue-163

Conversation

@BeSovereign

Copy link
Copy Markdown
Contributor

Refs #163

Added role="alert" to all six inline form-error boxes (onboarding, event, account, webcal in index.html; edit-cal/add-cal in app.js), made the persistent error toast's close control a labelled keyboard-operable ("Meldung schließen"), and removed the doubled 'Fehler: ' prefix on the calendar-delete and share-removal error toasts. Replaced the grep-only node test with six Playwright tests that force server failures and assert alert roles, toast persistence past 4 s, keyboard dismissal and the single prefix.

Driver gates (measured, not claimed)

  • Suites: lint: 1 passed, 0 failed | node: 1766 passed, 0 failed | python: 106 passed, 0 failed | e2e: 82 passed, 0 failed
  • Red/green check on declared tests: e2e/calendar.spec.js
red/green output
RED without the change:
s row id=c1741fb2-84a8-4d55-92b1-c97bb7f16f65: Stored value is not an AES-256-GCM value of this app
[WebServer] [db] Skipping undecryptable linked_accounts row id=c1741fb2-84a8-4d55-92b1-c97bb7f16f65: Stored value is not an AES-256-GCM value of this app
[WebServer] [db] Skipping undecryptable linked_accounts row id=c1741fb2-84a8-4d55-92b1-c97bb7f16f65: Stored value is not an AES-256-GCM value of this app
[WebServer] [db] Skipping undecryptable linked_accounts row id=c1741fb2-84a8-4d55-92b1-c97bb7f16f65: Stored value is not an AES-256-GCM value of this app
[WebServer] [Webcal] Refresh failed for subscription 71afa949-2f2c-46d4-8b7a-21fa51d864b7: Feed is not valid iCalendar: END:VCALENDAR missing (wrong content or truncated response)
[WebServer] [MSGraph OAuth] authorization was not granted


GREEN with the change:
s row id=d30a4f8d-93bd-429d-8167-d8b3f908eb78: Stored value is not an AES-256-GCM value of this app
[WebServer] [db] Skipping undecryptable linked_accounts row id=d30a4f8d-93bd-429d-8167-d8b3f908eb78: Stored value is not an AES-256-GCM value of this app
[WebServer] [db] Skipping undecryptable linked_accounts row id=d30a4f8d-93bd-429d-8167-d8b3f908eb78: Stored value is not an AES-256-GCM value of this app
[WebServer] [db] Skipping undecryptable linked_accounts row id=d30a4f8d-93bd-429d-8167-d8b3f908eb78: Stored value is not an AES-256-GCM value of this app
[WebServer] [Webcal] Refresh failed for subscription 433a1825-bee0-41d2-8d69-36c6c6472585: Feed is not valid iCalendar: END:VCALENDAR missing (wrong content or truncated response)
[WebServer] [MSGraph OAuth] authorization was not granted

🤖 Generated with Claude Code

Added role="alert" to all six inline form-error boxes (onboarding, event, account, webcal in index.html; edit-cal/add-cal in app.js), made the persistent error toast's close control a labelled keyboard-operable <button> ("Meldung schließen"), and removed the doubled 'Fehler: ' prefix on the calendar-delete and share-removal error toasts. Replaced the grep-only node test with six Playwright tests that force server failures and assert alert roles, toast persistence past 4 s, keyboard dismissal and the single prefix.

Refs #163

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant