You code the form, we make it accessible
Project description
cm-forms 📝
You build the form. We make it accessible.
Ever spent hours coding a perfect signup form, only to realize screen readers can't understand it? Yeah, that's frustrating.
The Problem
Forms are everywhere - logins, checkouts, contact pages, surveys. But most forms create accessibility barriers:
- Inputs without proper labels
- Buttons that just say "Submit" (submit what?)
- Error messages that aren't linked to the fields
- Required fields with no indication they're required
When the structure isn't there, screen reader users have to fill in the gaps. That's not okay.
The Solution
cm-forms is like Black for HTML forms. Point it at your HTML files, and it automatically adds the accessibility attributes everyone needs.
Note: This isn't an all in one solution. It's a tool to help you make your forms accessible. You still need to test them with screen readers and make sure they work for everyone.
cm-forms signup.html
NOTICE: This is a pre-alpha planning release (v0.0.1). No guarantees, minimal features live. Visit https://github.com/comfort-mode-toolkit/cm-forms/ to contribute or share feedback.
Processed: signup.html -> signup_cm.html
- Added label to <input id="username">
- Added label to <input id="email">
- Added aria-required="true" to <input id="email">
- Added aria-required="true" to <input id="password">
- WARNING: <button> label "Submit" is ambiguous, developer review needed
For more info and feedback, visit: https://github.com/comfort-mode-toolkit/cm-forms/
That's it. Seriously.
What It Does
- Finds all forms in your HTML files
- Adds ARIA labels, roles, and required attributes automatically
- Asks you when things are ambiguous (we can't read your mind!)
- Explains what changed and why
- Makes your forms work for everyone
Think of it as a helpful friend who knows WCAG guidelines and saves you hours of tedious work.
Current Status
🔬 Research Phase
We're figuring out the best way to build this. What we're exploring:
- Which fixes are always safe to auto-apply
- When we should ask instead of assuming
- How to explain accessibility without overwhelming people
- What forms need most in real projects
Want to Help? Go Down the Rabbit Hole
We need people to research and document what makes forms accessible. Not theory - practical stuff.
What we're looking for:
- Best practices: What should every form have? (real examples, not just "add labels")
- Risk areas: When could auto-fixing break things or make wrong assumptions?
- Edge cases: Multi-step forms, dynamic forms, custom controls - what's tricky?
- Testing insights: How do screen reader users actually interact with forms?
- Pattern library: What are the correct ARIA patterns for different form types?
How to contribute:
Dive into HTML form accessibility. Read the specs, test with screen readers, find real broken forms and document what they need. Write it in plain language.
Check out our research wiki to see how to submit your findings. No expertise required - if you can spot a problem and explain how to fix it, that helps.
GitHub issues, wiki edits, random notes in a text file - all welcome.
why forms?
Forms are everywhere. Login pages, checkouts, contact forms, surveys. When forms have accessibility barriers, people get locked out of important things.
Good news: form accessibility has clear patterns. Bad news: doing it manually is tedious and easy to mess up.
Let's automate the tedious parts.
part of comfort mode toolkit
cm-forms is part of the comfort mode toolkit – tools that make the web more comfortable for everyone.
Simple tools for a more accessible web.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cm_forms-0.0.1.tar.gz.
File metadata
- Download URL: cm_forms-0.0.1.tar.gz
- Upload date:
- Size: 43.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92e491c06365de86b95268e5204026700714e7e82488409bd2af72bd43baf265
|
|
| MD5 |
5f76cad1ed5892c8f01bfb685ca9b145
|
|
| BLAKE2b-256 |
4d179952b7c9844c2354b8f544c258f0183733f05d64c3ab6441a936999665a8
|
File details
Details for the file cm_forms-0.0.1-py3-none-any.whl.
File metadata
- Download URL: cm_forms-0.0.1-py3-none-any.whl
- Upload date:
- Size: 20.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73d8e4907dd44db5b9c809dba47f177d7ef10ba74b5757dcb367d3dd472a57b2
|
|
| MD5 |
30e8aa8e4f352c92f7ecaf8ab501239c
|
|
| BLAKE2b-256 |
7c430513371fcb5f63ea042e27a95c73d3178c95a9bff8ebed65950d59838b9c
|