Issue Summary

      The "Search issues" combobox in the header is not programmatically declared.

      Steps to Reproduce

      1. Navigate onto the above mentioned page.
      2. Navigate to the mentioned instance and inspect the code.
      3. Observe that the combobox is not programmatically defined.

      Screenshot

      Actual Results

      There is a combobox that is not correctly programmatically defined with appropriate roles and properties. The <input > element of the "Projects" combobox does not use role="combobox". It inappropriately use role="searchbox". As well, the child listbox does not use role="listbox", role="option" and aria-selected attributes.

      This may particularly  disadvantage the users of a screen reader. That the combobox is not correctly programmatically defined may confuse or mislead them about the functionality of the form field.

      Expected Results

      Make sure that the combobox components are programmatically determined. In this scenario, we would recommend you to create a combobox with appropriate ARIA roles and properties. On the combobox, use role="combobox". Where possible, expand a native <input>. Make sure that the <input> is labelled. This can be done with <label> or aria-labelledby. Use aria-expanded to differentiate when the listbox is expanded and collapsed. As well, use aria-activedescendant to programmatically determine the active option. This attribute uses the id of the active option. On the listbox, use role="listbox". Where possible, expand a container such as <div>. On the options, use role="option". Where possible, expand <ul> and <li>. As well, use aria-selected to differentiate of the active and inactive options. Make sure that each <ul> element uses role="group" and aria-labelledby attribute.

      For more information, you can refer " https://www.w3.org/WAI/ARIA/apg/patterns/combobox/"

      Make sure that the component can be controlled with a keyboard. The standard approach is that users tab onto the combobox and use Arrow Keys to adjust the listbox. This can be done in parallel with the aforementioned aria-activedescendant and aria-selected.

      For more information on listbox with group, you can refer "https://www.w3.org/WAI/ARIA/apg/patterns/listbox/examples/listbox-grouped/"

      Note: Make sure that the "View all issues" and "View all projects" links are coded separately outside the <div> element that has role="listbox".

      Code Snippet

      <label for="ex">Search issues</label>
      <input id="ex" type="search" role="combobox" aria-activedescendant="01" aria-autocomplete="list" aria-expanded="true" aria-controls="results" aria-haspopup="listbox" ...>
      <div id="results" role="listbox" ...>
      <span id="a1"issues</span>
      <ul role="group" aria-labelledby="a1">
      <li id="01" role="option" aria-selected="true">Get IT Help: Roles not defined for custom combobox</li>
      <li id="02" role="option">demo1</li>
      ...
      </ul>
      ...
      </div>

      Workaround

      Currently there is no known workaround for this behavior. A workaround will be added here when available

      Environment

      MacBook Pro (16-inch, 2021)
      macOs Ventura 13.3.1
      Chrome - Version 113.0.5672.63 (Official Build) (x86_64)
      Firefox- Version 92.0 (64-bit)
      Safari- Version 16.4 (18615.1.26.110.1)
      JAWS- Version 2023
      NVDA- Version 2023.3
      Voiceover - Version Latest

            [JSWSERVER-25583] Header : Combobox with grouped option is not programmatically defined

            No work has yet been logged on this issue.

              Unassigned Unassigned
              773dd3a38dd5 Cynthia Singh
              Affected customers:
              0 This affects my team
              Watchers:
              2 Start watching this issue

                Created:
                Updated: