Compare commits
2 Commits
burn/123-1
...
fix/overla
| Author | SHA1 | Date | |
|---|---|---|---|
| d2352ed589 | |||
| 8d309723aa |
@@ -1056,6 +1056,15 @@ Sovereignty and service always.`;
|
||||
// Register focus trap on document (always listening, gated by class check)
|
||||
document.addEventListener('keydown', trapFocusInOverlay);
|
||||
|
||||
// Escape key closes crisis overlay (returns focus to chat input)
|
||||
document.addEventListener('keydown', function(e) {
|
||||
if (e.key === 'Escape' && crisisOverlay.classList.contains('active')) {
|
||||
if (!overlayDismissBtn.disabled) {
|
||||
overlayDismissBtn.click();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
overlayDismissBtn.addEventListener('click', function() {
|
||||
if (!overlayDismissBtn.disabled) {
|
||||
crisisOverlay.classList.remove('active');
|
||||
|
||||
@@ -53,5 +53,19 @@ class TestCrisisOverlayFocusTrap(unittest.TestCase):
|
||||
)
|
||||
|
||||
|
||||
def test_overlay_escape_key_closes_overlay(self):
|
||||
"""Escape key closes crisis overlay and returns focus to chat input."""
|
||||
# Verify the Escape handler exists in the HTML
|
||||
self.assertRegex(
|
||||
self.html,
|
||||
r"e\.key\s*===\s*['"]Escape['"].*crisisOverlay\.classList\.contains\('active'\)",
|
||||
'Expected Escape key handler to check for active crisis overlay.',
|
||||
)
|
||||
self.assertRegex(
|
||||
self.html,
|
||||
r"overlayDismissBtn\.click\(\)",
|
||||
'Expected Escape key handler to trigger overlay dismiss button click.',
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user