From 361bbc67816b3b830c1541743a4aebfdd5d7b76c Mon Sep 17 00:00:00 2001 From: Agate Berriot Date: Thu, 18 Aug 2022 10:57:57 +0200 Subject: [PATCH] accessibility: replace focus at the beginning of list on pagination change (#41128) --- combo/public/static/js/combo.public.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/combo/public/static/js/combo.public.js b/combo/public/static/js/combo.public.js index 7291ee1d..c13a4f13 100644 --- a/combo/public/static/js/combo.public.js +++ b/combo/public/static/js/combo.public.js @@ -368,8 +368,7 @@ $(function() { if (items.length <= paginate_by) { return; } - - function update_page(step) { + function update_page(step, reset_focus) { page_index = page_index + step; if (page_index == 0) { $pagination.find('.cell-items-pagination-prev').prop('disabled', true); @@ -383,11 +382,16 @@ $(function() { } start_item = paginate_by * page_index; items.hide(); - items.slice(start_item, start_item + paginate_by).show(); + var shown_items = items.slice(start_item, start_item + paginate_by) + shown_items.show() + if (reset_focus) { + var first_focusable_item = shown_items.find('button, a, input, select, textarea, [tabindex]:not([tabindex="-1"])').first() + first_focusable_item.focus(); + } }; - $pagination.find('.cell-items-pagination-prev').click(function() { update_page(-1); }); - $pagination.find('.cell-items-pagination-next').click(function() { update_page(1); }); + $pagination.find('.cell-items-pagination-prev').click(function() { update_page(-1, true); }); + $pagination.find('.cell-items-pagination-next').click(function() { update_page(1, true); }); update_page(0); $pagination.prop('hidden', null); }); -- 2.36.1