Skip to content

Fix accessibility on new registration form#1288

Draft
Stef-Rousset wants to merge 136 commits intodevelopfrom
fix/input_assistance_indications
Draft

Fix accessibility on new registration form#1288
Stef-Rousset wants to merge 136 commits intodevelopfrom
fix/input_assistance_indications

Conversation

@Stef-Rousset
Copy link
Copy Markdown

🎩 What? Why?

This PR improves accessibility on new registration form, by:

  • adding an indication of expected format for email with sr-only span
  • indicating that terms of service is required with sr-only span, and by linking the term of services text with its input with aria-describedby

This PR is issued from the audit of Angers city (pages 97 and 98), and refers to criterias 3.3.1 and 3.3.2 from WCAG.

📌 Related Issues

Testing

  1. As a non logged in user, go to the signup page
  2. Activate your screenreader and navigate to the email field
  3. Ensure that an example of format for email is read
  4. Navigate to the terms of service field
  5. Ensure that the indication of required field is read
  6. When you navigate on the checkbox, ensure that the terms of service text is read

📷 Screenshots

Capture d’écran 2025-08-21 à 15 06 21

Capture d’écran 2025-08-21 à 15 05 52

♥️ Thank you!

andreslucena and others added 30 commits March 13, 2026 00:49
…cidim#16397)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…ecidim#16159)

* JS import configured to select states based on component

* Route configured for collection on proposal import new

* Imported js entry point of import_proposals.

* Configured a new iteration from select on the component origin within the form

* Created component_states method within the import controller

* Updated some lint issues with the JS script

* Updated import controller to retrieve the origin_id instead of component id

* Moved the proposals_merge resource route.

* Added attribute to select states based on the selected component

* Added selectedStates which parses the selected states based on the component

* Removed validate :valid_states because pluck token wasn't reterving states on its own componet not from that selected

* Fixed the tercary operator on the selected states checkbox

* Aligned the method call on the new form to fix lint error

* not answered missing from the component states maped to be selected from the componet

* Extracted the enforce_permissions method to component_states to parse users who dont have permissions to run the import actions

* clean up of unused methods within the proposal import form

* Updated object that retrieves the states via the proposal_import

* Escaped the html by interpolating the state.token and state.title within the script to encode all handles

* reverted private method of valid_states checking the proposal state and plucking the not_answered state server side validation

* System spec added to check for dynamically added states from origin component

* Updated spec to account for custom states to be detected in drop down

* refactored the proposal import change to import from a stimulus controller

* modified the new page to call the data attribute of the dynamic states

* update to controller based on lint errors

* refactored to use the mordern way of stimulus of calling the controller and an absolute path

* jS docs added to the controller fetching the states dynamically
* Make surveys searcheable

* Apply suggestions from code review

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* updated publiccode yml file to fix errors found in the ci on pr's in the repo

* update organization for organisation

* update to publiccode yml for fix to maintaince org name

* removing contacts name from publiccode yml

* updated direct of api docs on publiccode yml

* added the parser as binary to bypass the no-network checks until theres a fix

* Updated ci versions to @v4 within the validation

* Updated to get release assets via .tar.gz files not binary

* skipping no network check within the validation yml
* Bump to dependencies: Bump devise from 5.0.2 to 5.0.3

Bumps [devise](https://github.com/heartcombo/devise) from 5.0.2 to 5.0.3.
- [Release notes](https://github.com/heartcombo/devise/releases)
- [Changelog](https://github.com/heartcombo/devise/blob/main/CHANGELOG.md)
- [Commits](heartcombo/devise@v5.0.2...v5.0.3)

---
updated-dependencies:
- dependency-name: devise
  dependency-version: 5.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: sync decidim-generators/Gemfile.lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…ecidim#16399)

* Fix taxonomy filters in new component

* Apply review recommendation

* More review recommendation

* Apply review recommendations

* Apply review recommendation
* group explict role added to failing div

* Weight added to sections to order db determinstically
* Bump to dependencies: Bump loofah from 2.25.0 to 2.25.1

Bumps [loofah](https://github.com/flavorjones/loofah) from 2.25.0 to 2.25.1.
- [Release notes](https://github.com/flavorjones/loofah/releases)
- [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md)
- [Commits](flavorjones/loofah@v2.25.0...v2.25.1)

---
updated-dependencies:
- dependency-name: loofah
  dependency-version: 2.25.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: sync decidim-generators/Gemfile.lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Remove ActiveSupport::Configurable as is deprecated

* Fix mailer

* Fix Expectations

* Address Coderabbit's recommendations

* Fix small typo

* Apply suggestions from code review

Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>

* Add RELEASE_NOTES

* Fix mardownlint errors

---------

Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
Co-authored-by: Tom Greenwood <101816158+greenwoodt@users.noreply.github.com>
…ecidim#16406)

* fix: exclude progress budgets from non_voted_budgets query

* improve test readbility and coverage
Co-authored-by: Tom Greenwood <101816158+greenwoodt@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Tom Greenwood <101816158+greenwoodt@users.noreply.github.com>
* Fix Private members are invited twice

* Add migration

* Fix member spec

* Fix import issues

* Add coderabbit recommendations

* Refactor to use ActiveRecord models

* Add migration

* Apply suggestions from code review

Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>

---------

Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…#16425)

* feat: select date on click

* chore: remove redudant button from test DOM

* lint: remove empty line

* chore: remove css

* test: assert that the input value is not empty
* Fix Component Settings select fields are not marked as disabled

* Fix typo

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* track already updated models

* rubocop

* move to a depth detector approach

* add a spec covering the original scenario for the bug

* add log message if recursion is reached
* Bump to dependencies: Bump json from 2.19.1 to 2.19.2

Bumps [json](https://github.com/ruby/json) from 2.19.1 to 2.19.2.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](ruby/json@v2.19.1...v2.19.2)

---
updated-dependencies:
- dependency-name: json
  dependency-version: 2.19.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: sync decidim-generators/Gemfile.lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
* Bump to dependencies: Bump bcrypt from 3.1.21 to 3.1.22

Bumps [bcrypt](https://github.com/bcrypt-ruby/bcrypt-ruby) from 3.1.21 to 3.1.22.
- [Release notes](https://github.com/bcrypt-ruby/bcrypt-ruby/releases)
- [Changelog](https://github.com/bcrypt-ruby/bcrypt-ruby/blob/master/CHANGELOG)
- [Commits](bcrypt-ruby/bcrypt-ruby@v3.1.21...v3.1.22)

---
updated-dependencies:
- dependency-name: bcrypt
  dependency-version: 3.1.22
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: sync decidim-generators/Gemfile.lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
…idim#15300)

* fix datepicker position when is placed at the bottom of the page

* Added guard condition

* Dynamically adjust the datepicker position

* Apply coderabbit recommendation

* Apply latest coderabbot recommendations

* Compute position for timepicker as well

* Renamed file and added test file

* Fixed pipeline

* Small fix

* Fixed tests

* Merged test files

Signed-off-by: andra-panaite <andra.panaite@tremend.com>

---------

Signed-off-by: andra-panaite <andra.panaite@tremend.com>
Co-authored-by: andra-panaite <andra.panaite@tremend.com>
Co-authored-by: Alexandru Emil Lupu <contact@alecslupu.ro>
)

* Bump to dependencies: Bump nokogiri from 1.19.1 to 1.19.2

Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.19.1 to 1.19.2.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
- [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md)
- [Commits](sparklemotion/nokogiri@v1.19.1...v1.19.2)

---
updated-dependencies:
- dependency-name: nokogiri
  dependency-version: 1.19.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: sync decidim-generators/Gemfile.lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment