summaryrefslogtreecommitdiffstatshomepage
path: root/core/misc/details-aria.es6.js
blob: bf92846dac4bfbc76b44ff079520ccd0d7a519e9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * @file
 * Add aria attribute handling for details and summary elements.
 */

(function ($, Drupal) {
  /**
   * Handles `aria-expanded` and `aria-pressed` attributes on details elements.
   *
   * @type {Drupal~behavior}
   */
  Drupal.behaviors.detailsAria = {
    attach() {
      $('body').once('detailsAria').on('click.detailsAria', 'summary', (event) => {
        const $summary = $(event.currentTarget);
        const open = $(event.currentTarget.parentNode).attr('open') === 'open' ? 'false' : 'true';

        $summary.attr({
          'aria-expanded': open,
          'aria-pressed': open,
        });
      });
    },
  };
}(jQuery, Drupal));