99 @touchstart =" handleEnhancedTouchStart"
1010 @touchend =" handleEnhancedTouchEnd"
1111 @touchmove =" handleEnhancedTouchMove"
12- @click =" toggleMenu"
1312 >
1413 <div
1514 ref =" menuHead"
2019 aria-haspopup =" menu"
2120 :aria-expanded =" menuActive"
2221 aria-label =" Menu"
22+ @click =" toggleMenu"
2323 @keydown =" handleKeyboardMenuActivation"
2424 >
2525 <span class =" menu-head-icon" >
@@ -288,7 +288,7 @@ export default defineComponent({
288288 });
289289
290290 // open/close the menu
291- const toggleMenu = (event : MouseEvent | KeyboardEvent ) => {
291+ const toggleMenu = (event : MouseEvent | KeyboardEvent | TouchEvent ) => {
292292 measurePerformance (' toggleMenu' , () => {
293293 markAsUsed (' menuToggle' );
294294
@@ -521,11 +521,9 @@ export default defineComponent({
521521 const handleEnhancedTouchStart = (event : TouchEvent ) => {
522522 handleTouchStart (event , (touchEvent ) => {
523523 if (touchEvent .type === ' longpress' ) {
524- // Long press opens menu and provides haptic feedback
524+ // Long press activates the menu (same as click/tap)
525525 triggerHapticFeedback (' medium' );
526- if (! menuActive .value ) {
527- toggleMenu (event as any );
528- }
526+ toggleMenu (event );
529527 }
530528 });
531529
@@ -541,8 +539,9 @@ export default defineComponent({
541539 const handleEnhancedTouchEnd = (event : TouchEvent ) => {
542540 handleTouchEnd (event , (touchEvent ) => {
543541 if (touchEvent .type === ' tap' ) {
544- // Provide light haptic feedback for taps
542+ // Tap activates the menu (same as click)
545543 triggerHapticFeedback (' light' );
544+ toggleMenu (event );
546545 } else if (touchEvent .type === ' swipe' ) {
547546 // Handle swipe gestures
548547 const swipe = getSwipeDirection ();
@@ -655,4 +654,24 @@ export default defineComponent({
655654<style lang="scss">
656655@use ' ./index' ;
657656@use ' ./styles/accessibility' ;
657+
658+ /* Fix for double focus indicators */
659+ .menu-list-item {
660+ & .selected ,
661+ & .highlight {
662+ outline : none !important ;
663+ border : none !important ;
664+
665+ & :focus ,
666+ & :focus-visible {
667+ outline : none !important ;
668+ border : none !important ;
669+ }
670+ }
671+
672+ /* Only apply focus style on non-selected/non-highlighted items */
673+ & :not (.selected ):not (.highlight ):focus-visible {
674+ outline : 2px solid #007bff ;
675+ }
676+ }
658677 </style >
0 commit comments