MODX Accessible Manager Project

MODX Revolution has always been a stellar platform for powering accessible websites, but the back-end Manager falls short. Users that rely upon assistive devices such as screen readers, enlarged fonts and alternate input devices were left with a sub-optimal experiences when it comes to creating and managing content in the MODX Manager.

The purpose of this project is to make MODX a first class citizen in the accessible software world, and the premiere accessible CMS. This will be accomplished in a way that doesn't require rebuilding your existing MODX Revolution websites, and achieves some critical goals:

  • Protect existing investments in MODX Revolution sites
  • Enable anyone to use MODX for managing and creating content
  • Make it easy to install in an existing 2.3.x-based site by delivering it as a Manager Theme

This project is being crowdfunded, with intial seed funding sponsored by The Ohio State University. Learn more at

Keyboard Shortcuts

Visit the Wiki page

Keyboard Navigation

Visit the Wiki page

Road Map


  • Keyboard Navigation
  • ARIA roles, states, and properties for all the major areas of the Manager UI
  • Visual Contrast to meet WCAG guidelines
  • Clean up text presentation for screen readers
  • Focus indication
  • Dashboard Widgets:
    • Enable Dyslexia Font
    • Font Size Increase / Decrease
    • Theme Switcher
  • Packaged Installation


  • Modal Support
  • Resource X-Tab Strip Navigation
  • X-Grid Data Table Keyboard Navigation
  • Better Text Error Handling on form inputs
  • Additional Translations

This theme will be available as an extra and the testing releases will be available on GitHub's repo

Get Involved

We would love the world to contribute to this project. Before submitting a new issue or opening a new Pull Request, please search to see if the same issue/PR already exists.

Please note, the repository at modxcms/a11y is only for issues & PRs directly related to the MODX Accessible CMS project. For general issues about MODX Revolution itself, please see modxcms/revolution.

When submitting new issues and PRs, always use the corresponding template.


To clarify and streamline the UI language to improve the overall end user experience for all users, all English lexicon changes are handled in the main GitHub parent project at modxcms/revolution. To make updates to the non-English lexicon files, please do so at Crowdin.


Looking for advise or help in general about MODX Revolution, want to get involved, or have an idea? Please search the MODX documentation, the MODX forums or join to #modx or #xpdo room on IRC FreeNode server (

Submit an issue

Clicking here will open a new issue which will have the below template prefilled

We'd love to have your feedback, ideas and participation, whether you can create code or not.


### Summary
Quick summary what's this issue about.

### Step to reproduce
How to reproduce the issue, including custom code if needed.

### Observed behavior
How it behaved after following steps above.

### Expected behavior
How it should behave after following steps above.

### Environment
MODX version, apache/nginx and version, mysql version, browser, etc. Any relevant information.

Submit a Pull Request to Contribute to the Code

If this is your first PR for a MODX-related project, please create an account on the MODX website and sign the Contributors License Agreement. This is needed to ensure all code is licensed properly. We cannot merge pull requests without a signed CLA.

Please test your PR before submitting it! If something needs some special review/attention, please let us know.

Choosing the correct branch (TBD)

We try to follow Semantic Versioning, so if you are submitting a bugfix please choose master branch. Use the develop branch for features.

  • master - next patch release (1.0.1, 1.0.2, 1.0.3, etc.)
  • develop - next minor release (1.0.0, 1.1.0, 1.2.0, etc.)


### What does it do ?
Describe the technical changes you did.

### Why is it needed ?
Describe the issue you are solving.

### Related issue(s)/PR(s)
Let us know if this is related to any issue/pull request (see