Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-73446

Backlog : Calendar popup is inaccessible for screen reader & keyboard only users.

XMLWordPrintable

    Issue Description

    In "Edit sprint" modal dialog, the Calendar popup provided for "Start date" & "End date" is not accessible with screen reader & keyboard-only users.

    Steps to reproduce

    1. Turn on screen reader and activate "Edit sprint" button.
    2. Navigate to the "Select a date" element present near "Start date" & "end date" input field & activate it with enter key.
    3. The calendar popup will open but the element inside popup can’t be navigated with keyboard.

    Actual Behaviour

    When screen reader users try to navigate in calendar component with up/down keys or Tab key, it is not responding i.e this calendar component is inaccessible for screen reader users.

    When user activates the "Select a date" button the calendar popup is displayed. But the elements inside the popup such as "close", "Previous month", "Next month", etc can not be navigated with keyboard & screen reader doesn’t announce the contents.

    Although when user press arrow keys the Different dates can be selected but screen reader doesn’t announce which date is currently focused.

    This makes screen reader & keyboard users difficult to access the functionality of the Calendar effectively.

    Expected Behaviour

    When the popup opens the keyboard focus should go inside the popup contents. All the elements inside the Calendar popup such as "close", "Previous month", "Next month", etc should receive keyboard focus & screen reader should announce the elements. 

    Following code changes needs to be made.

    • Provide role="dialog" & aria-label="Select date" to the parent <div> container of the popup.
    • Mark the elements such as "Close", "Previous month", "Next month", etc as <button> elements.
    • Provide clear & descriptive labels to these buttons.
    • Mark the month text inside <h2> element & provide aria-live="polite" along with an unique id.
    • Provide role="grid" & aria-labelledby to the <table> element. 
    • Provide aria-selected="true" to the currently selected date inside table.
    • When user press up/down/left/right arrow keys to navigate to different dates, the screen reader should announce the date.
    • Remove Following elements from <table> & <th> markup.
      • Help 
      • September 2022
      • close
      • Previous year & Next year
      • Previous Month & Next month
      • Today
      • Time

    Refer to the following Example of Accessible Calendar popup.

    https://www.w3.org/WAI/ARIA/apg/example-index/dialog-modal/datepicker-dialog.html 

    Screenshot

      1. 73346-due-date-calendar.mov
        6.85 MB
        ssuryavanshi
      2. 73346-edit-sprint-calendar.mov
        44.45 MB
        ssuryavanshi
      3. inline-edit-after-fix.mov
        10.28 MB
        Vadym Ohyr
      4. inline-edit-before-fix.mov
        10.94 MB
        Vadym Ohyr
      5. JRASERVER-73446-after-fix.mov
        30.67 MB
        Vadym Ohyr
      6. JRASERVER-73446-after-fix-voiceover.mov
        53.76 MB
        Vadym Ohyr
      7. JRASERVER-73446-after-fix-voiceover-1.mov
        53.76 MB
        Vadym Ohyr
      8. Screenshot 2022-09-14 at 6.55.18 PM.png
        635 kB
        ssuryavanshi

            c3057d0e8d6b Vadym Ohyr
            12b69dcabe29 Matthew Brennan
            Votes:
            2 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: