Projet

Général

Profil

0001-accessibility-replace-focus-at-the-beginning-of-list.patch

A. Berriot, 18 août 2022 10:58

Télécharger (1,83 ko)

Voir les différences:

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(-)
combo/public/static/js/combo.public.js
368 368
    if (items.length <= paginate_by) {
369 369
      return;
370 370
    }
371

  
372
    function update_page(step) {
371
    function update_page(step, reset_focus) {
373 372
      page_index = page_index + step;
374 373
      if (page_index == 0) {
375 374
        $pagination.find('.cell-items-pagination-prev').prop('disabled', true);
......
383 382
      }
384 383
      start_item = paginate_by * page_index;
385 384
      items.hide();
386
      items.slice(start_item, start_item + paginate_by).show();
385
      var shown_items = items.slice(start_item, start_item + paginate_by)
386
      shown_items.show()
387
      if (reset_focus) {
388
        var first_focusable_item = shown_items.find('button, a, input, select, textarea, [tabindex]:not([tabindex="-1"])').first()
389
        first_focusable_item.focus();
390
      }
387 391
    };
388 392

  
389
    $pagination.find('.cell-items-pagination-prev').click(function() { update_page(-1); });
390
    $pagination.find('.cell-items-pagination-next').click(function() { update_page(1); });
393
    $pagination.find('.cell-items-pagination-prev').click(function() { update_page(-1, true); });
394
    $pagination.find('.cell-items-pagination-next').click(function() { update_page(1, true); });
391 395
    update_page(0);
392 396
    $pagination.prop('hidden', null);
393 397
  });
394
-