diff --git a/src/document_anonymizer/web/static/js/review.js b/src/document_anonymizer/web/static/js/review.js index 8f7c15b..2a0941d 100644 --- a/src/document_anonymizer/web/static/js/review.js +++ b/src/document_anonymizer/web/static/js/review.js @@ -72,10 +72,11 @@ selectAlls[j].addEventListener("change", onSelectAllChange); } - // Tier header toggle (collapse/expand) — click on header but not on checkbox + // Tier header toggle (collapse/expand) — click or Enter/Space on header var tierHeaders = document.querySelectorAll("[data-tier-toggle]"); for (var k = 0; k < tierHeaders.length; k++) { tierHeaders[k].addEventListener("click", onTierHeaderClick); + tierHeaders[k].addEventListener("keydown", onTierHeaderKeydown); } // Clickable tags in preview @@ -119,18 +120,32 @@ function onTierHeaderClick(e) { // Don't toggle collapse when clicking the checkbox itself if (e.target.classList.contains("select-all-checkbox")) return; + toggleTierCollapse(e.currentTarget); + } + + function onTierHeaderKeydown(e) { + // Enter or Space toggles collapse (standard button behavior) + if (e.key === "Enter" || e.key === " ") { + e.preventDefault(); + toggleTierCollapse(e.currentTarget); + } + } - var tier = e.currentTarget.dataset.tierToggle; + function toggleTierCollapse(header) { + var tier = header.dataset.tierToggle; var body = document.getElementById("tier-body-" + tier); var icon = document.getElementById("toggle-icon-" + tier); if (!body) return; - if (body.hidden) { - body.hidden = false; - if (icon) icon.classList.remove("tier-toggle-icon--collapsed"); - } else { - body.hidden = true; - if (icon) icon.classList.add("tier-toggle-icon--collapsed"); + var expanded = !body.hidden; + body.hidden = expanded; + header.setAttribute("aria-expanded", String(!expanded)); + if (icon) { + if (expanded) { + icon.classList.add("tier-toggle-icon--collapsed"); + } else { + icon.classList.remove("tier-toggle-icon--collapsed"); + } } } diff --git a/src/document_anonymizer/web/templates/results.html b/src/document_anonymizer/web/templates/results.html index fcac789..e4f3c0b 100644 --- a/src/document_anonymizer/web/templates/results.html +++ b/src/document_anonymizer/web/templates/results.html @@ -30,7 +30,7 @@

{{ _("results.review_heading") }}

{% set tier_entities = entities_by_tier.get(tier_key, []) %} {% if tier_entities %}
-
+