Avoid redundant tour buttons

Created on 21 September 2024, 2 months ago

Problem/Motivation

If you have added the tour button to a region in your default theme on the block layout page and the navigation or admin toolbar are available while you are visiting any page in the frontend you have two identical buttons, function as well as button label wise, which is sort of confusing for screenreader users.

(* just noticed there is a bug in the navigation module which prefixes an abbreviation of the actual menu item label - will check if there is an already existing issue for that and if not open an issue)

Audited and discussed the issue together with @drupa11y last tuesday.

Steps to reproduce

  • Visit for example node/1

Proposed resolution

while on any page in the default theme with the navigation available and the tour button added to the default theme, hide that redundant tour button added to the default theme so only the the tour button is available once for a page in the navigation sidebar / admin_toolbar

Remaining tasks

User interface changes

API changes

Data model changes

🐛 Bug report
Status

Active

Version

2.0

Component

User interface

Created by

🇩🇪Germany rkoller Nürnberg, Germany

Live updates comments and jobs are added and updated live.
  • Accessibility

    It affects the ability of people with disabilities or special needs (such as blindness or color-blindness) to use Drupal.

  • Usability

    Makes Drupal easier to use. Preferred over UX, D7UX, etc.

Sign in to follow issues

Comments & Activities

  • Issue created by @rkoller
  • 🇩🇪Germany rkoller Nürnberg, Germany
  • 🇩🇪Germany rkoller Nürnberg, Germany
  • 🇺🇸United States smustgrave

    I don't think I like the idea of hiding a button, going against the site builders configuration. Is there an alternative to hiding? Different aria text maybe?

  • 🇩🇪Germany rkoller Nürnberg, Germany

    hmmmm i am not sure if it would make things much clearer. it would be also sort of confusing if you would apply an aria-label attribute and call one button for example Tour Navigation and the other Tour Olivero or Tour Frontend. That could be misleading as well. Is that one tour for olivero respectively the frontend and one for the navigation module? I consider that potentially confusing as well if not even worse without the visual context. and i thought the initial purpose making the tour button a block was to enable the sitebuilder in case a user has the toolbar/navigation not available to place a tour block enabling the start of a tour? that wouldnt change and would be still possible?

  • 🇺🇸United States smustgrave

    They can but also up to a site builder to structure the site if they don’t want 2 your buttons on a page

  • 🇺🇸United States smustgrave

    Could maybe add a setting to disable the tour button from the toolbar but it would be up to the site builder to make sure it’s on the page some other way

  • 🇩🇪Germany rkoller Nürnberg, Germany

    hmmm i've retried to playing around with the block visibility settings. i've tried that before when the block option got first introduced a few weeks ago, and back then i wasnt able to get it working. but i was revisiting that now to see if it would be possible to hide the block for certain roles now to make sure the block is only shown when the toolbar/navigation module is not accessible. but somehow the block is only shown in the olivero socialbar for my admin user (aside i also have set up an authenticated user). i tried two scenarios.

    when the user has the following roles: authenticated user (checked)
    admin - block is visible in olivero socialbar
    authenticated user - block is not visible in the olivero socialbar

    when the user has the following roles: anonymous user (checked)
    admin - block is not visible in olivero socialbar
    authenticated user - block is not visible in the olivero socialbar

    if those visibility settings would work and one would be able to reliably ensure that for example the tour button is hidden in the frontend theme when the toolbar/navigation is available that would be preferable imho (using the standard regular ways for drupal core), in contrast to by introducing a setting to disable the button you've suggested in your last comment. i am not sure if there would be an elegant and intuitive way - not sure where to place that setting? (also disabling the button from the toolbar and keep the button in the frontend is also sort of confusing. keeping the button in its traditional place is preferable to not throw of users. switching the position depending on the context is suboptimal from my perspective. humans are creatures of habit ;) .

    but then there is still the problem which aria-labels to use in case the visibility problem is sorted out? for one depending on the settings and context the aria-label would have to change meaning if only a single button is displayed simply show Tour / No Tour while with more than one button something like this?

    Tour (Navigation)
    Tour ([default theme name])

    to each label button is appended by the screenreader. tour "navigation button" or "tour in navigation button"? none of these have a clear label imho. tricky but goign with identical labels would also be not good :/

  • 🇺🇸United States smustgrave

    Block setting do not override your settings. If you don’t have permission to use tour then doesn’t matter the block settings

  • 🇩🇪Germany rkoller Nürnberg, Germany

    arghhhhhhhhh i forgot about the "access tour" permission. had to setup a completely fresh instance for testing and forgot about the permission. ok when i grant that permission to all available roles then all the scenarios listed in #8 work - now everything makes sense again, and i am in control. my bad apologies. so that leaves us with the question how to label those aria-labels?

  • 🇺🇸United States smustgrave

    So what I was proposing is a tour setting that disables tour from appearing in toolbar

    We may also want to consider removing the permission check around the block. So if someone has access to the block they can run the tour.

  • 🇺🇸United States smustgrave

    For the label what if you place a tour block multiple times. What about other core blocks

  • 🇩🇪Germany rkoller Nürnberg, Germany

    re #11 by disabling the button in the navigation then the button would only appear for a user who has no access to the navigation/toolbar? but yeah that would probably require removing the permission check or the disabling the button in the navigation is an indirect permission check still since the tour would only work if someone does not have the permission to use the navigation. hmmm have to think about that.

    re #13, that is a point i've also raised a concern about in the navigation module queue a while ago. on the navigation layouts page you are currently able to place the same navigation block, for example the main navigation x number of times. not sure what the benefit and or the sense for such an ability actually is? not only in regards of the redundancy aspect but what is the actual benefit having the same menu or navigation block twice or three times in a navigation sidebar with a limited vertical screen real estate anyway?

  • 🇺🇸United States smustgrave

    It’s not just the navigation module though. You can place a block in the toolbar/navigation, any region in theme, any number of times.

    To me that’s just Drupal so unless there’s an attribute that can be had not sure what can be done.

  • 🇺🇸United States smustgrave

    Also maybe only additional info we may know at the time is the block plugin ID. Which has no usefulness

  • 🇺🇸United States smustgrave

    So relooking at this I think it’s working as designed. As that’s Drupal. If a site builder places multiple tour blocks on a page I don’t think it’s the modules place to auto hide anything. That’s taking the site building out of a site builders hands.

    So should this be closed

Production build 0.71.5 2024