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

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

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:

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 ) 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?