nextcloud / calendar

📆 Calendar app for Nextcloud
https://apps.nextcloud.com/apps/calendar
GNU Affero General Public License v3.0
968 stars 236 forks source link

Calendar content area is not accessible/focusable #4123

Open ChristophWurst opened 2 years ago

ChristophWurst commented 2 years ago

Steps to reproduce

  1. Try to access the calendar via keyboard

Expected behavior

Moves back to start after "Settings & import" → check with fullcalendar, e.g. https://github.com/fullcalendar/fullcalendar/issues/3364, https://github.com/fullcalendar/fullcalendar/issues/6528 and https://github.com/fullcalendar/fullcalendar/issues/2535.

Actual behaviour

Focus is possible.

Calendar app version

v3.x

CalDAV-clients used

No response

Browser

No response

Client operating system

No response

Server operating system

No response

Web server

No response

Database engine version

No response

PHP engine version

No response

Nextcloud version

No response

Updated from an older installed version or fresh install

No response

List of activated apps

No response

Nextcloud configuration

No response

Web server error log

No response

Log file

No response

Browser log

No response

Additional info

No response

JuliaKirschenheuter commented 2 years ago

It’s more difficult to add a new event in the following viewers:

using the keyboard than it should be. Mouse users can add a new event directly from each view, but keyboard users can only use the button “New event” in the side menu.

This calendar issue depends on implementing of https://github.com/fullcalendar/fullcalendar. It could be not easy to adapt standard behavior.

JuliaKirschenheuter commented 2 years ago

This task is bound to the upstream library https://github.com/fullcalendar/fullcalendar/. Some of the accessibility issues could be found here: https://github.com/fullcalendar/fullcalendar/milestone/47.

There are 3 options to move forward with this ticket:

  1. Try to fix the upstream library.

    • I have no knowledge in React.
    • Fullcalendar is a distributed system: see some dependencies in package.json in every package from https://github.com/fullcalendar/fullcalendar/tree/master/packages. It will need time to understand, where each accessibility ticket could be fixed.
    • It could take much time.
    • Our accessibility list should also be done.
  2. Ask fullcalendar developers to fix this issues, see more under https://fullcalendar.io/

  3. Search for another library, which already have all requirements we need, including accessibility.

    • This will take a lot of time to rewrite our code. Right now there are a lot of places where fullcalendar objects / api is bound in our integration. All tests are written based on fullcalendar.
    • This could have an advantage, if we could find and use a Vue calendar integration. There could be better communication with events, which will allow us to provide more/further features regarding single event. In this point would be great to know, which feature requests do we have regarding manipulation with events and how hard could it be to implement them with existing fullcalendar.
    • We want to have more possibilities to work with single events. Right now it is hard, because computed props from Event Renderer doesn't work this way https://github.com/nextcloud/calendar/pull/4351. There are could be another solution, but probably a fullcalendar have there own limits (! this is not investigated well).

@nextcloud/frontenders please feel free to add you thoughts here. @nextcloud/designers please feel free to add you thoughts here.

JuliaKirschenheuter commented 2 years ago

Accessible table requirements and examples could be found there: https://www.w3.org/WAI/ARIA/apg/patterns/grid/ https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Grid_Role

szaimen commented 2 years ago

Calendar content area is not focusable

it seems like this is resolved in one of the recent releases as it was not possible ot navigate the grid ad all if I remember correctly.

JuliaKirschenheuter commented 2 years ago

it seems like this is resolved in one of the recent releases as it was not possible ot navigate the grid ad all if I remember correctly.

Hey @szaimen , have you seen this PR? i can't find any closed issues from https://github.com/fullcalendar/fullcalendar/milestone/47

szaimen commented 2 years ago

I haven't looked at their PRs but I've recorded a video where you can see that it is indeed possible to reach the calendar events via keyboard:

https://user-images.githubusercontent.com/42591237/185590047-17808529-577a-4767-96e6-bd0a22956dcf.mp4

However the order of things could probably be improved.