feedBack/plugins/career
Byron Gamatos 99b974a5a1
fix(career): passport review polish — a11y semantics + seen-state guard (#937)
CodeRabbit follow-up on #936 (the one Major — overlay outside the click
root — was verified false: the host mounts every screen.html root inside
#plugin-career, ✕-close confirmed working live):

- Tabs: aria-selected/aria-controls + role=tabpanel/aria-labelledby.
- Book overlay: role=dialog + aria-modal + aria-label; focus moves to
  the close button on open and returns to the opener on close.
- seenBadges(): guard non-object JSON so a corrupt stored value cannot
  throw on every passport refresh (covered by a new corruption test).
- Fresh-session suppression test (badge seen → no re-notification).
- Stylelint declaration-empty-line-before nit in .pp-stamp.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-13 12:14:24 +02:00
..
assets fix(career): passport review polish — a11y semantics + seen-state guard (#937) 2026-07-13 12:14:24 +02:00
tests fix(career): passport review polish — a11y semantics + seen-state guard (#937) 2026-07-13 12:14:24 +02:00
venue-packs/bar feat(career): bundle dive bar venue pack (#927) 2026-07-12 22:58:04 +02:00
passports.json feat(career): passport backend — genre badges computed from stars (#935) 2026-07-13 11:47:59 +02:00
plugin.json feat(career): passport backend — genre badges computed from stars (#935) 2026-07-13 11:47:59 +02:00
routes.py feat(career): passport backend — genre badges computed from stars (#935) 2026-07-13 11:47:59 +02:00
screen.html fix(career): passport review polish — a11y semantics + seen-state guard (#937) 2026-07-13 12:14:24 +02:00
screen.js fix(career): passport review polish — a11y semantics + seen-state guard (#937) 2026-07-13 12:14:24 +02:00
settings.html feat(career): passport backend — genre badges computed from stars (#935) 2026-07-13 11:47:59 +02:00
venues.json feat(career): career plugin — stars, venue tiers, pack downloads (career mode 2/3) (#907) 2026-07-12 22:39:19 +02:00