@@ -23,6 +23,40 @@ $(document).on('click', '[data-toggle]', function() {
2323 $button . attr ( 'aria-expanded' , ! currentExpanded ) ;
2424} ) ;
2525
26+ // Accessibility: Handle Nav aria-expanded on keyboard navigation
27+ $ ( document ) . on ( 'click' , '[aria-expanded]' , function ( ) {
28+ var $button = $ ( this ) ;
29+ var currentExpanded = $button . attr ( 'aria-expanded' ) === 'true' ;
30+ $button . attr ( 'aria-expanded' , ! currentExpanded ) ;
31+ } ) ;
32+
33+ function toggleAriaExpanded ( submenu , expanded ) {
34+ var $parent = submenu . parent ( 'li.is-dropdown-submenu-parent' ) ;
35+ var $button = $parent . find ( 'a[aria-expanded]' ) ;
36+ $button . attr ( 'aria-expanded' , expanded ) ;
37+ }
38+
39+ // Accessibility: Listen for Foundation menu events to update aria-expanded
40+ $ ( document ) . ready ( function ( ) {
41+ // dropdown menu (wide screen)
42+ $ ( document ) . on ( 'show.zf.dropdownmenu' , function ( event , $sub ) {
43+ toggleAriaExpanded ( $sub , true ) ;
44+ } ) ;
45+
46+ $ ( document ) . on ( 'hide.zf.dropdownmenu' , function ( event , $sub ) {
47+ $ ( 'a[aria-expanded="true"]' ) . attr ( 'aria-expanded' , 'false' ) ;
48+ } ) ;
49+
50+ // drilldown menu (narrow screen)
51+ $ ( document ) . on ( 'open.zf.drilldown' , function ( event , $elem ) {
52+ toggleAriaExpanded ( $elem , true ) ;
53+ } ) ;
54+
55+ $ ( document ) . on ( 'hide.zf.drilldown' , function ( event , $elem ) {
56+ $ ( 'a[aria-expanded="true"]' ) . attr ( 'aria-expanded' , 'false' ) ;
57+ } ) ;
58+ } ) ;
59+
2660$ ( ".search-toggle" ) . click ( function ( ) {
2761 var $searchMenu = $ ( "#search-menu" ) ;
2862 if ( $searchMenu . is ( ':visible' ) ) {
0 commit comments