Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -248,10 +248,12 @@
{%- endif -%}

{{ widget|raw }}
<label{% with { attr: label_attr } %}{{ block('attributes') }}{% endwith %}>
{{- label is not same as(false) ? (translation_domain is same as(false) ? label : label|trans({}, translation_domain)) -}}
{{- form_errors(form) -}}
Copy link
Contributor

@ro0NL ro0NL Apr 12, 2019

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

Copy link
Contributor Author

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?

Copy link
Contributor

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?

Yep :) see #24435, #26167

cc @Nyholm

Copy link
Contributor Author

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 when false 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 passing false we basically say that userland is responsible for complying to the WCAG2 that the error should be rendered inside the label.

Copy link
Contributor

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.

Copy link
Member

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?

Copy link
Contributor Author

@rvanlaak rvanlaak Jul 18, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both when a value or false is passed for label the errors do get rendered. Rendering the errors in the label according to WCAG2 should get preserved.

The problem for userland ChoiceType implementations; when label => 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 when false is passed. The error message will then bubble up to the parent (that also complies to WCAG2).

Copy link
Member

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?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

friendly ping @rvanlaak

Copy link
Contributor Author

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.

</label>
{% if label is not same as(false) %}
<label{% with { attr: label_attr } %}{{ block('attributes') }}{% endwith %}>
{{- translation_domain is same as(false) ? label : label|trans({}, translation_domain) -}}
{{- form_errors(form) -}}
</label>
{% endif %}
{%- endif -%}
{%- endblock checkbox_radio_label %}

Expand Down
Morty Proxy This is a proxified and sanitized view of the page, visit original site.