# GSoC 2026 Proposal Draft: Keyboard Shortcuts & Accessibility in Django Admin

**URL:** <https://forum.djangoproject.com/t/gsoc-2026-proposal-draft-keyboard-shortcuts-accessibility-in-django-admin/44284>\
**Category:** Google Season of Code\
**Created:** [February 24, 2026, 10:31am UTC](https://forum.djangoproject.com/t/gsoc-2026-proposal-draft-keyboard-shortcuts-accessibility-in-django-admin/44284 "2026-02-24T10:31:43Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![prachisingh342006](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/prachisingh342006/32/31602_2.png) [@prachisingh342006](https://forum.djangoproject.com/u/prachisingh342006)\
**Post date:** [February 24, 2026, 10:31am UTC](https://forum.djangoproject.com/t/gsoc-2026-proposal-draft-keyboard-shortcuts-accessibility-in-django-admin/44284/1 "2026-02-24T10:31:43Z")

</div>

Hi everyone,

I’m Prachi Singh, and I’d like to propose a GSoC 2026 project around  
merging keyboard shortcuts into Django core and improving admin accessibility.

## Background

I’ve been actively contributing to django-admin-keyshortcuts, the package  
built during GSoC 2025 by @khanxmetu. My contributions so far:

- PR #14 – Enter shortcut to open focused row in changelist (fixes issue #5)
- PR #15 – Fix shortcuts not triggering when form fields are focused (fixes issue #2)
- PR #16 – Normalize shortcuts for non-US keyboard layouts (fixes issue #3)
- Added CI/CD with GitHub Actions (Python 3.9–3.13, Django 4.2–5.2 matrix, ESLint, Selenium)
- Improved accessibility: ARIA attributes (aria-labelledby, role=“switch”,  
aria-live for screen reader announcements), focus management on dialog close

All PRs and code can be found on my GitHub: [GitHub - prachisingh342006/django-admin-keyshortcuts: Keyboard shortcuts for Django Admin · GitHub](http://github.com/prachisingh342006/django-admin-keyshortcuts)

## Proposed GSoC 2026 Project (350hr)

Goal: Bring keyboard shortcuts into django.contrib.admin as a first-class,  
accessible, and configurable feature.

### Deliverables

1. Merge shortcuts into Django core – Port the keyboard shortcut system  
(hotkey library, templates, JS, CSS) into django/contrib/admin/
2. Django settings for configurability – Allow developers to enable/disable  
shortcuts globally or per-view, override default keybindings, and control  
default on/off state
3. WCAG 2.1 AA compliance – Full accessibility audit, proper ARIA roles,  
keyboard trap prevention, screen reader support
4. Comprehensive test suite – Unit tests + Selenium/Playwright browser tests  
integrated into Django’s CI
5. Documentation – Official Django docs covering usage, customization,  
and adding custom shortcuts
6. Non-US keyboard layout support – Ensure shortcuts work across QWERTY,  
QWERTZ, AZERTY, and other layouts

### Proposed Timeline

Week 1–2: Community bonding, finalize design with mentor, review existing code  
Week 3–4: Port core shortcut system into django/contrib/admin  
Week 5–6: Implement Django settings for configurability  
Week 7–8: Midterm – Accessibility audit + WCAG compliance  
Week 9–10: Test suite (unit + browser tests)  
Week 11–12: Documentation + final polish + non-US keyboard support

## Looking for Mentor

@thibaudcolas – Given your work on Django’s accessibility and your involvement  
in the keyboard shortcuts feedback thread, would you be open to mentoring  
this project?

I’m also open to feedback on scoping – happy to adjust based on community input.

Link to the feedback thread I posted in earlier:

> [@Feedback: django admin keyboard shortcuts](https://forum.djangoproject.com/t/feedback-django-admin-keyboard-shortcuts/42783):
>
> Opening this on behalf of @khanxmetu following his project report: [Keyboard shortcuts in Django via GSoC 2025](https://www.djangoproject.com/weblog/2025/sep/04/keyboard-shorcuts-in-django-via-gsoc-2025/) to collect feedback on keyboard shortcuts slight_smile If you want to help, Try out their [static admin demo](https://khanxmetu.github.io/django-admin-keyshortcuts-demo/main/demo/release/) with the new shortcuts. Or install [django-admin-keyshortcuts](https://github.com/khanxmetu/django-admin-keyshortcuts) on your project and try it out there. Then come back here and let us know what you think!

---

<div class="post-metadata">

**Author:** ![prachisingh342006](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/prachisingh342006/32/31602_2.png) [@prachisingh342006](https://forum.djangoproject.com/u/prachisingh342006)\
**Post date:** [February 26, 2026, 7:21am UTC](https://forum.djangoproject.com/t/gsoc-2026-proposal-draft-keyboard-shortcuts-accessibility-in-django-admin/44284/2 "2026-02-26T07:21:11Z")

</div>

Update: I’ve opened an improved PR #17  
( [Fix issue 5Add Enter shortcut to open focused row in changelist page by prachisingh342006 · Pull Request #17 · khanxmetu/django-admin-keyshortcuts · GitHub](https://github.com/khanxmetu/django-admin-keyshortcuts/pull/17) ) with a bug fix  
and unit test for the Enter shortcut.

Would appreciate feedback — could overriding the Enter key conflict with other  
browser/admin default behaviors in form-heavy pages?

---

<div class="post-metadata">

**Author:** ![prachisingh342006](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/prachisingh342006/32/31602_2.png) [@prachisingh342006](https://forum.djangoproject.com/u/prachisingh342006)\
**Post date:** [March 20, 2026, 9:08am UTC](https://forum.djangoproject.com/t/gsoc-2026-proposal-draft-keyboard-shortcuts-accessibility-in-django-admin/44284/3 "2026-03-20T09:08:18Z")

</div>

Hi ,  
I’ve submitted my GSoC proposal for “Keyboard Shortcuts and Accessibility Improvements for Django Admin.”  
Please let me know if you’d like any clarifications or changes. I’m happy to update it quickly.  
Thanks!

---

<div class="post-metadata">

**Author:** ![prachisingh342006](https://sea2.discourse-cdn.com/flex026/user_avatar/forum.djangoproject.com/prachisingh342006/32/31602_2.png) [@prachisingh342006](https://forum.djangoproject.com/u/prachisingh342006)\
**Post date:** [March 20, 2026, 9:12am UTC](https://forum.djangoproject.com/t/gsoc-2026-proposal-draft-keyboard-shortcuts-accessibility-in-django-admin/44284/4 "2026-03-20T09:12:35Z")

</div>

“I’ve been exploring how keyboard shortcuts can be integrated into Django admin while maintaining accessibility and avoiding conflicts with browser shortcuts. I would appreciate feedback on which areas of the admin could benefit most from improved keyboard navigation.”
