As part of our volunteer-driven accessibility initiative in GNOME Calendar, and for the first time in the 10+ years of Calendar's existence, we finally completed and merged the first step needed to have a working calendar app for people who rely on keyboard navigation. This merge request in particular makes the event widgets focusable with navigation keys (arrow left/up/right/down) and activatable with space/enter. This will be available in GNOME 49.

Most of GNOME Calendar's layout and widgets consist of custom widgets and complex calculations, both independently and according to other factors (window size, height and width of each cell, number of events, positioning, etc.), so these widgets need to be minimal to have as little overhead as possible. This means that these widgets also need to have the necessary accessibility features reimplemented or even rethought, including and starting with the event widgets.

We also hope to get other parts of GNOME Calendar accessible before GNOME 49, but I can't promise anything at the moment. We did start working with making the month view accessible: https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564

#GNOME #Calendar #GNOMECalendar #GTK4 #GTK #Libadwaita #Accessibility #a11y #Linux

Make the event widget accessible (!559) · Merge requests · GNOME / gnome-calendar · GitLab

This implements button functionality to make it able to focus and activate it. This also sets the appropriate accessibility role and labels/descriptions. Related:

GitLab

Continuing our volunteer effort to make GNOME Calendar fully accessible with a keyboard (see thread for context), we fixed a major bug that was causing the focus to disappear into the abyss when the user tried to tab into the month view in merge request !576. This means, as of this commit, events should now be completely functional and accessible within the month view. Additionally, the merge request changes the keyboard and focus behavior within the month view: Events can only be cycled using arrow buttons, the focus can't escape the month view with arrow buttons, and entering/exiting the month view can only be done with tab. These improvements will be available on GNOME 49.

#GNOME #Accessibility #a11y #GNOMECalendar #Calendar #FOSS #FreeSoftware #Linux

Improve accessibility with event widgets in the month view (!576) · Merge requests · GNOME / gnome-calendar · GitLab

Calendar application for GNOME

GitLab

Happy Disability Pride Month everybody :)

During the past few weeks, there's been an overwhelming amount of progress with accessibility on GNOME Calendar:

• Event widgets/popovers will convey to screen readers that they are toggle buttons. They will also convey of their states (whether they're pressed or not) and that they have a popover. (See !587)

• Calendar rows will convey to screen readers that they are check boxes, along with their states (whether they're checked or not). Additionally, they will no longer require a second press of a tab to get to the next row; one tab will be sufficient. (See !588)

• Month and year spin buttons are now capable of being interacted with using arrow up/down buttons. They will also convey to screen readers that they are spin buttons, along with their properties (current, minimum, and maximum values). The month spin button will also wrap, where going back a month from January will jump to December, and going to the next month from December will jump to January. (See !603)

• Events in the agenda view will convey to screen readers of their respective titles and descriptions. (See !606)

Accessibility on Calendar has progressed to the point where I believe it's safe to say that, as of GNOME 49, Calendar will be usable exclusively with a keyboard, without significant usability friction!

There's still a lot of work to be done in regards to screen readers, for example conveying time appropriately and event descriptions. But really, just 6 months ago, we went from having absolutely no idea where to even begin with accessibility in Calendar — which has been an ongoing issue for literally a decade — to having something workable exclusively with a keyboard and screen reader! :3

Huge thanks to @nekohayo for coordinating the accessibility initiative, especially with keeping the accessibility meta issue updated; Georges Stavracas for single-handedly maintaining GNOME Calendar and reviewing all my merge requests; and @tyrylu for sharing feedback in regards to usability.

All my work so far has been unpaid and voluntary; hundreds of hours were put into developing and testing all the accessibility-related merge requests. I would really appreciate if you could spare a little bit of money to support my work, thank you 🩷

https://ko-fi.com/theevilskeleton
https://github.com/sponsors/TheEvilSkeleton

(Boost appreciated)

#Accessibility #a11y #DisabilityPrideMonth #GNOME #GNOMECalendar #GTK #GTK4 #Libadwaita #FreeSoftware #FOSS #OpenSource

Improve accessibility of GcalEventWidget (!587) · Merge requests · GNOME / gnome-calendar · GitLab

Calendar application for GNOME

GitLab

After two weeks of writing, revising, and trying to make everything as digestible as possible, I finally published "GNOME Calendar: A New Era of Accessibility Achieved in 90 Days", where I explain in detail the steps we took to turn GNOME Calendar from an app that was literally unusable with a keyboard and screen reader to an app that is (finally) accessible to keyboard and screen reader users as of GNOME 49!

https://tesk.page/2025/07/25/gnome-calendar-a-new-era-of-accessibility-achieved-in-90-days/

#GNOMECalendar #GNOME #Accessibility #a11y #DisabilityPrideMonth #Linux #FOSS #OSS #OpenSource #FreeSoftware #GTK #libadwaita

GNOME Calendar: A New Era of Accessibility Achieved in 90 Days

There is no calendaring app that I love more than GNOME Calendar. The design is slick, it works extremely well, it is touchpad friendly, and best of all, the community around it is just full of wonderful developers, designers, and contributors worth collaborating with, especially with the recent community growth and engagement over the past few years. Georges Stavracas and Jeff Fortin Tam are some of the best maintainers I have ever worked with. I cannot express how thankful I am of Jeff’s underappreciated superhuman capabilities to voluntarily coordinate huge initiatives and issue trackers. One of Jeff’s many initiatives is gnome-calendar#1036: the accessibility initiative, which is a big and detailed list of issues related to accessibility. In my opinion, GNOME Calendar’s biggest problem was the lack of accessibility support, which made the app completely unusable for people exclusively using a keyboard, or people relying on assistive technologies. This article will explain in details about the fundamental issues that held back accessibility in GNOME Calendar since the very beginning of its existence (12 years at a minimum), the progress we have made with accessibility as well as our thought process in achieving it, and the now and future of accessibility in GNOME Calendar.

TheEvilSkeleton

At last, all the accessibility improvements on GNOME Calendar are finally available as a stable release. Get it on Flathub while it's hot!!!

https://flathub.org/en/apps/org.gnome.Calendar

#Accessibility #GNOME #GTK #GTK4 #libadwaita #a11y #calendar #GNOMECalendar #Linux #GNU #OpenSource #FOSS #FreeSoftware #OSS

GNOME Calendar: A New Era of Accessibility Achieved in 90 Days

There is no calendaring app that I love more than GNOME Calendar. The design is slick, it works extremely well, it is touchpad friendly, and best of all, the community around it is just full of wonderful developers, designers, and contributors worth collaborating with, especially with the recent community growth and engagement over the past few years. Georges Stavracas and Jeff Fortin Tam are some of the best maintainers I have ever worked with. I cannot express how thankful I am of Jeff’s underappreciated superhuman capabilities to voluntarily coordinate huge initiatives and issue trackers. One of Jeff’s many initiatives is gnome-calendar#1036: the accessibility initiative, which is a big and detailed list of issues related to accessibility. In my opinion, GNOME Calendar’s biggest problem was the lack of accessibility support, which made the app completely unusable for people exclusively using a keyboard, or people relying on assistive technologies. This article will explain in details about the fundamental issues that held back accessibility in GNOME Calendar since the very beginning of its existence (12 years at a minimum), the progress we have made with accessibility as well as our thought process in achieving it, and the now and future of accessibility in GNOME Calendar.

TheEvilSkeleton

After two long and painful years, several design iterations, and more than 50 rebases later, we finally merged the infamous, trauma-inducing merge request !362 on GNOME Calendar.

The calendars list in the quick-add popover has undergone accessibility improvements, providing a better experience for assistive technologies and keyboard users (to a limited extent). Specifically: tabbing from outside the list will focus the selected calendar in the list; tabbing from inside the list will skip the entire list; arrow keys automatically select the focused calendar; and finally, assistive technologies now inform the user of the checked/selected state.

Admittedly, the quick-add popover is currently unreachable via keyboard because we lack the resources to implement keyboard focus for month and week cells. We are currently trying to address this issue in merge request !564, and hope to get it merged for GNOME 50, but it's a significant undertaking for a single unpaid developer. If it is not too much trouble, I would really appreciate some donations, to keep me motivated to improve accessibility throughout GNOME and sustain myself: https://tesk.page/#donate

For non-accessibility-related details about this merge request, feel free to check out https://mastodon.social/@nekohayo/115571375702642784

#GNOMECalendar #GNOME #GTK4 #libadwaita #accessibility #a11y #calendar #FOSS #OpenSource

quick-add-popover: Port to libadwaita widgets and merge stack pages (!362) · Merge requests · GNOME / gnome-calendar · GitLab

Both stack pages are merged into one, to avoid additional clicks. Mnemonics were added to accommodate keyboard users as well. Closes

GitLab

The thing that makes me really happy, probably as much as receiving donations themselves, is people are actually donating through Liberapay rather than the proprietary alternatives.

Just a few months ago, I had no idea how to set up Liberapay and gave up on it, because I got overwhelmed. A friend nudged me to reconsider it. I tried to set it up again, and got it properly set up this time. They were the first donor in Liberapay, and eventually, more and more people started to donate via Liberapay, surpassing GitHub Sponsors and Ko-fi.

Seriously, thank you @Liberapay for the wonderful platform, and to my friend who motivated me to set it up again!

WE DID IT, WE FUCKING DID IT

WE GOT KEYBOARD NAVIGATION WORKING IN GNOME CALENDAR'S MONTH VIEW

https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/564/diffs?commit_id=f1b564c0c6c2fd59bf3fe752407381b6029a2e36 (not merged yet)

Do note that the screen recording attached won't have any alt text, to avoid redundancy. Everything written below is a detailed explanation of the experience, and the recording is essentially a visual demonstration:

- When entering the month view with Tab, focus is set to the first event widget, and pressing Tab will focus the next event widget horizontally.
- Ctrl+Tab will move focus to the month cell located at the focused event widget. Ctrl+Arrow will move focus to the edges of the view.
- When out of boundaries horizontally, the focus moves onto the other side of the view.
- When out of boundaries vertically, the view will automatically scroll to that direction.
- Shift+Arrow will move focus and initiate selection; pressing arrow keys will select ranges of cells, and letting go of Shift will display the new event popover.
- When a month cell has overflowing events (as in, there are not enough event widgets that can fit inside the month cell), pressing tab will focus the overflow button, and activating it will show a list of events.

#GNOME #Calendar #GNOMECalendar #GTK4 #Libadwaita #a11y #Accessibility

GNOME Live Coding | Calendar (EN)

YouTube

"Wow, congratulations, this is looking INSANE, Hari... The hell is going on here"

— Georges, maintainer of GNOME Calendar - https://youtu.be/smofXzVwNwQ?t=1h24m6s

GNOME Live Coding | Calendar (EN)

YouTube

An update on GNOME Calendar: Georges livestreamed himself reviewing and merging parts of merge request !598, making the month view easier than ever to navigate with a keyboard!

This merge request introduces a coordinate-aware navigation system in the month view, which computes the coordinates of relevant event widgets and finds the nearest widget relative to the one in focus when using arrow keys. When tabbing, focus moves chronologically, meaning focus continues to move down until there are no event widgets overlaying that specific cell, which then moves focus to the topmost event widget found in the next cells or rows; tabbing backwards goes in the opposite direction.

To illustrate the sheer complexity of navigation in a calendaring app, here is Georges's live reaction:

"Wow, congratulations, this is looking INSANE, Hari... The hell is going on here"

— Georges, maintainer of GNOME Calendar - https://youtu.be/smofXzVwNwQ?t=1h24m6s

#GNOMECalendar #GNOME #GTK4 #libadwaita #accessibility #a11y #FOSS #OpenSource #Linux

GNOME Live Coding | Calendar (EN)

YouTube

Everyone, rejoice 🙌

Georges livestreamed himself reviewing and merging accessibility contributions in GNOME Calendar again, specifically the entirety of merge request !564, which introduces keyboard-navigable month cells. This means, as of GNOME 50, GNOME Calendar's month view will be fully navigable with a keyboard for the first time in its history! The only high-level goal that needs work now is conveying these information with assistive technologies properly.

Do note that the screen recording attached won't have any alt text, to avoid redundancy. Everything written below is a detailed explanation of the experience, and the recording is essentially a visual demonstration:

- When tabbing between events, focus moves chronologically. This means that focus continues to move down until there are no event widgets overlaying the current cell. Then, focus moves to the topmost event widget in the next cell or row. Tabbing backwards with Shift+Tab moves in the opposite direction.
- On the last event widget, pressing Tab moves the focus to the adjacent month cell. Conversely, pressing Ctrl+Tab on any event widget has the same effect.
- Pressing an activation button (such as Enter or Space) displays the popover for creating an event. Additionally, pressing and holding the Shift key while pressing the arrow keys selects every cell between the start and end positions until the Shift key is released, which displays the popover with the selected range.

Both merge requests !564 and !598 took us almost an entire year to explore various approaches and finally settle on the best one for our use case. Everything was done voluntarily, relying solely on support from donors and those who share these posts, without any financial backing from other entities. In contrast, most, if not all, calendar apps backed by trillion-dollar companies still don't offer proper keyboard navigation across their views. In many cases, they haven't even reached feature parity. If it is not too much trouble, please consider funding my accessibility work on GNOME. Thank you! ♥️

#GNOMECalendar #GNOME #Accessibility #a11y #Calendar #GTK #libadwaita #OpenSource #FreeSoftware #FOSS #OSS #Linux

@TheEvilSkeleton If I only I could boost this 10000 times!
@TheEvilSkeleton As a bonus Georges also plays the Oud and Baião on an Okinawan instrument.
@TheEvilSkeleton Will the new quick event editor look come to Calendar in v50? It also looked amazing!