There are many places in core where a link with the "button" role is used (a[role=button]). The expected behavior of such an element is that it responds to the spacebar (and obviously to the enter key and to click). For now, most of the time, it does not respond to the spacebar, which is an accessibility problem.

It's easy to add some JS code to give all "pseudo-buttons" the intended behavior. But we want to make sure this won't break anything.

The first thing to do might be to detect where it's used in core, and where adding the correct behavior could break the UI.

Additional info:
This is a follow-up of #2805227: Make sure Place Block buttons identify as buttons in Block layout UI.. We had a discussion with andrewmacpherson at DrupalCon Dublin about this. We thought it would be nice to open this wider issue. Screenreaders tell the users that <a role='button'> is a button, so the users expect the spacebar to respond.

CommentFileSizeAuthor
#22 2809347-22.patch771 bytesgauravvvv

Issue fork drupal-2809347

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

    Comments

    GaëlG created an issue. See original summary.

    gaëlg’s picture

    Issue summary: View changes
    gaëlg’s picture

    Issue summary: View changes
    gaëlg’s picture

    I ran a file search to find the "pseudo-buttons":

    1. The "Place block" button in /admin/structure/block (it's discussed in #2805227: Make sure Place Block buttons identify as buttons in Block layout UI.)
    2. In many places in the CKeditor core module (search for role="button")
    3. In quickedit.js (what for?)
    4. For the toolbar items (ToolbarItem.php)

    There are also places where the "button" role is set on elements other than anchor (div, fieldset, etc.) but I don't know if this is also a problem.

    gaëlg’s picture

    gaëlg’s picture

    Version: 8.3.x-dev » 8.4.x-dev

    Drupal 8.3.0-alpha1 will be released the week of January 30, 2017, which means new developments and disruptive changes should now be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

    Version: 8.4.x-dev » 8.5.x-dev

    Drupal 8.4.0-alpha1 will be released the week of July 31, 2017, which means new developments and disruptive changes should now be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

    Version: 8.5.x-dev » 8.6.x-dev

    Drupal 8.5.0-alpha1 will be released the week of January 17, 2018, which means new developments and disruptive changes should now be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

    Version: 8.6.x-dev » 8.7.x-dev

    Drupal 8.6.0-alpha1 will be released the week of July 16, 2018, which means new developments and disruptive changes should now be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

    Version: 8.7.x-dev » 8.8.x-dev

    Drupal 8.7.0-alpha1 will be released the week of March 11, 2019, which means new developments and disruptive changes should now be targeted against the 8.8.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

    Version: 8.8.x-dev » 8.9.x-dev

    Drupal 8.8.0-alpha1 will be released the week of October 14th, 2019, which means new developments and disruptive changes should now be targeted against the 8.9.x-dev branch. (Any changes to 8.9.x will also be committed to 9.0.x in preparation for Drupal 9’s release, but some changes like significant feature additions will be deferred to 9.1.x.). For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

    Version: 8.9.x-dev » 9.1.x-dev

    Drupal 8.9.0-beta1 was released on March 20, 2020. 8.9.x is the final, long-term support (LTS) minor release of Drupal 8, which means new developments and disruptive changes should now be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

    Version: 9.1.x-dev » 9.2.x-dev

    Drupal 9.1.0-alpha1 will be released the week of October 19, 2020, which means new developments and disruptive changes should now be targeted for the 9.2.x-dev branch. For more information see the Drupal 9 minor version schedule and the Allowed changes during the Drupal 9 release cycle.

    Version: 9.2.x-dev » 9.3.x-dev

    Drupal 9.2.0-alpha1 will be released the week of May 3, 2021, which means new developments and disruptive changes should now be targeted for the 9.3.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

    Version: 9.3.x-dev » 9.4.x-dev

    Drupal 9.3.0-rc1 was released on November 26, 2021, which means new developments and disruptive changes should now be targeted for the 9.4.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

    Version: 9.4.x-dev » 9.5.x-dev

    Drupal 9.4.0-alpha1 was released on May 6, 2022, which means new developments and disruptive changes should now be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

    Version: 9.5.x-dev » 10.1.x-dev

    Drupal 9.5.0-beta2 and Drupal 10.0.0-beta2 were released on September 29, 2022, which means new developments and disruptive changes should now be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

    Version: 10.1.x-dev » 11.x-dev

    Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch, which currently accepts only minor-version allowed changes. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

    mgifford’s picture

    Issue tags: +aria

    Might be worth evaluating if this is still a problem. This may have been a browser issue not providing sufficient support at the time. Maybe ARIA is better supported to work well with the space bar in 2023.

    gauravvvv’s picture

    Status: Active » Needs review
    StatusFileSize
    new771 bytes

    This is still happening. I have created a patch for same. please review.

    smustgrave’s picture

    Status: Needs review » Needs work
    Issue tags: +Needs issue summary update, +Needs tests

    Issue summary should be updated.

    Also will need a test case believe.

    Version: 11.x-dev » main

    Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

    Read more in the announcement.