You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Extracted from #35 — modal focus trapping deferred until an actual modal component exists.
Background
No modals in the app today. The mobile nav drawer (base.html) already has dialog semantics (role="dialog" aria-modal="true"), Escape-to-close, and focus return.
Summary
Extracted from #35 — modal focus trapping deferred until an actual modal component exists.
Background
base.html) already has dialog semantics (role="dialog" aria-modal="true"), Escape-to-close, and focus return.Recommended approach
When the first modal is needed:
focus-trap.js— small utility (~30 lines):document.activeElementon openprefers-reduced-motionfor any open/close animationsRefs
src/dashboard/templates/base.htmlmobile drawer (existing pattern)