Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork9.7k
Not render Bootstrap radio label when false#31090
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
| {{widget|raw }} | ||
| <label{%with {attr:label_attr } %}{{block('attributes') }}{%endwith %}> | ||
| {{-labelis notsame as(false)? (translation_domainissame as(false)?label:label|trans({},translation_domain)) -}} | ||
| {{- form_errors(form) -}} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
i think it's intended to still render errors here, which is up for debate in general i believe :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
To show the error inside the label as well?
Could you suggest another way to not show the<label> when it was set to false?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Make sure errors are a part of the label on bootstrap 4 - this is a requirement for WCAG2
Ok clear 👍 Let's make sure that rule gets preserved. Then the question would be whether a label still should get rendered even whenfalse gets passed.
The use-case here is that we want to render a custom label, while we want to keep using the Bootstrap theme for rendering the widget.
The problem is that{{ form_widget(} }} does render both the widget and the label. By passingfalse we basically say that userland is responsible for complying to the WCAG2 that the error should be rendered inside the label.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
i once suggested to make the split explicit, i.e.form_label +form_label_with_errors
{{ form_widget(} }} does render both the widget and the label
this sounds like a violation of concerns already :)
im not sure what path to take. I agree a user could be responsible, and IMHO SF should provide low-level building blocks for it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Can't we fix the initial point for now? Display the label if there are errors?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Both when a value orfalse is passed forlabel the errors do get rendered. Rendering the errors in the label according to WCAG2 should get preserved.
The problem for userlandChoiceType implementations; whenlabel => false is passed, the label value does not get rendered while the<label> tag does get rendered.
So the change I suggest via this PR is to also not render the<label> tag whenfalse is passed. The error message will then bubble up to the parent (that also complies to WCAG2).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Are you sure that errors bubble up?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
friendly ping@rvanlaak
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others.Learn more.
Have been working on a unit test to verify this, but did not manage to complete that yet.
fabpot commentedFeb 3, 2020
Closing this PR as it is stale for a very long time. Feel free to reopen when ready. |
Bootstrap form theme does still render the
<label>, even when label is set tofalse. The whole label should be wrapped in the check forfalse.