Skip to content

Commit b0dc05b

Browse files
fix(a11y): close button z-index, reduced-motion coverage, aria-expanded sync, info row roles, Enter double-activation
1 parent 4a0ce16 commit b0dc05b

2 files changed

Lines changed: 14 additions & 8 deletions

File tree

Resources/Public/Css/FrontendEdit.css

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,7 @@
842842
position: absolute;
843843
top: 8px;
844844
right: 8px;
845-
z-index: 2;
845+
z-index: 10006;
846846
width: 32px;
847847
height: 32px;
848848
display: flex;
@@ -868,11 +868,17 @@
868868
.frontend-edit__sidebar--open,
869869
.frontend-edit__sidebar-backdrop,
870870
.frontend-edit__sidebar-backdrop--visible,
871+
.frontend-edit__sidebar-loader,
872+
.frontend-edit__sidebar-iframe,
871873
.frontend-edit__overlay,
872874
.frontend-edit__overlay--active,
873875
.frontend-edit__tooltip,
874876
.frontend-edit__tooltip--visible {
875877
transition-duration: 0.01ms !important;
876878
animation-duration: 0.01ms !important;
877879
}
880+
881+
.frontend-edit__sidebar-spinner {
882+
animation: none !important;
883+
}
878884
}

Resources/Public/JavaScript/frontend_edit.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -664,15 +664,14 @@
664664
if (action.type === 'divider') {
665665
el.className = 'frontend-edit__divider';
666666
el.setAttribute('role', 'separator');
667+
} else if (action.type === 'info') {
668+
el.className = 'frontend-edit__info';
669+
el.setAttribute('role', 'presentation');
667670
} else {
668671
el.setAttribute('role', 'menuitem');
669672
el.setAttribute('tabindex', '-1');
670673
}
671674

672-
if (action.type === 'info') {
673-
el.className = 'frontend-edit__info';
674-
}
675-
676675
const safeName = this.escapeClassName(name);
677676
if (safeName) {
678677
el.classList.add(safeName);
@@ -714,6 +713,7 @@
714713
e.preventDefault();
715714
items[items.length - 1]?.focus();
716715
} else if (e.key === 'Enter') {
716+
e.preventDefault();
717717
if (document.activeElement && document.activeElement.click) {
718718
document.activeElement.click();
719719
}
@@ -972,7 +972,7 @@
972972
if (toolbar?.contains(e.relatedTarget)) return;
973973

974974
OverlayManager.setActive(targetElement, false);
975-
if (dropdown) dropdown.style.display = 'none';
975+
if (dropdown) Dropdown.closeAll();
976976
});
977977

978978
// Keep active when hovering toolbar
@@ -987,7 +987,7 @@
987987
if (dropdown?.contains(e.relatedTarget)) return;
988988

989989
OverlayManager.setActive(targetElement, false);
990-
if (dropdown) dropdown.style.display = 'none';
990+
if (dropdown) Dropdown.closeAll();
991991
});
992992
}
993993

@@ -996,7 +996,7 @@
996996
if (targetElement.contains(e.relatedTarget)) return;
997997
if (toolbar?.contains(e.relatedTarget)) return;
998998

999-
dropdown.style.display = 'none';
999+
Dropdown.closeAll();
10001000
OverlayManager.setActive(targetElement, false);
10011001
});
10021002
}

0 commit comments

Comments
 (0)