0001-accessibility-support-hiding-menus-through-escape-ke.patch
combo/public/static/js/combo.public.js | ||
---|---|---|
422 | 422 |
paginate_cards($(elem)); |
423 | 423 |
} |
424 | 424 |
}); |
425 |
// accessibililty enhancements: |
|
426 |
// support for hiding some elements (such as submenus) |
|
427 |
// when the escape key is pressed |
|
428 |
$(document).keydown(function(e) { |
|
429 |
if (e.key === "Escape") { |
|
430 |
$(".hide-on-escape:visible").hide() |
|
431 |
} |
|
432 |
}); |
|
433 |
// and ensure the elements can be viewed again |
|
434 |
// on subsequent hover/focus |
|
435 |
function reset_hidden_elements(event) { |
|
436 |
var root_element = $(event.target).closest('.contains-hidden-elements') |
|
437 |
$(root_element).find('.hide-on-escape').attr('style', '') |
|
438 |
} |
|
439 |
$('.contains-hidden-elements').mouseenter(reset_hidden_elements, null) |
|
440 |
$('.contains-hidden-elements').focusin(reset_hidden_elements) |
|
425 | 441 |
}); |
combo/public/templates/combo/menu.html | ||
---|---|---|
1 | 1 |
{% load i18n %} |
2 | 2 |
{% if menuitems %} |
3 |
<ul class="{{ is_submenu|yesno:"submenu,menu" }}"> |
|
3 |
<ul class="{{ is_submenu|yesno:"submenu,menu" }} {% if is_submenu %}hide-on-escape{% endif %}">
|
|
4 | 4 |
{% spaceless %} |
5 | 5 |
{% for menuitem in menuitems %} |
6 |
<li data-menu-page-id="{{ menuitem.page.id }}" class="{{ is_submenu|yesno:"submenu,menu" }}--item menu-{{ menuitem.page.slug }} {% if menuitem.selected %}selected{% endif %}"> |
|
6 |
<li data-menu-page-id="{{ menuitem.page.id }}" class="{% if depth > 1 %}contains-hidden-elements{% endif %} {{ is_submenu|yesno:"submenu,menu" }}--item menu-{{ menuitem.page.slug }} {% if menuitem.selected %}selected{% endif %}">
|
|
7 | 7 |
<a |
8 | 8 |
{% if menuitem.selected %}title="{{ menuitem.page.title }} - {% trans "active page" %}"{% endif %} |
9 | 9 |
href="{% page_absolute_url menuitem.page %}" |
10 |
- |