Configurable member field "required" flag and Vereinfacht-required fields closes #440 #441
1 changed files with 18 additions and 0 deletions
|
|
@ -448,6 +448,8 @@ defmodule MvWeb.CoreComponents do
|
||||||
end
|
end
|
||||||
|
|
||||||
def input(%{type: "select"} = assigns) do
|
def input(%{type: "select"} = assigns) do
|
||||||
|
assigns = ensure_aria_required_for_input(assigns)
|
||||||
|
|
||||||
~H"""
|
~H"""
|
||||||
<fieldset class="mb-2 fieldset">
|
<fieldset class="mb-2 fieldset">
|
||||||
<label>
|
<label>
|
||||||
|
|
@ -475,6 +477,8 @@ defmodule MvWeb.CoreComponents do
|
||||||
end
|
end
|
||||||
|
|
||||||
def input(%{type: "textarea"} = assigns) do
|
def input(%{type: "textarea"} = assigns) do
|
||||||
|
assigns = ensure_aria_required_for_input(assigns)
|
||||||
|
|
||||||
~H"""
|
~H"""
|
||||||
<fieldset class="mb-2 fieldset">
|
<fieldset class="mb-2 fieldset">
|
||||||
<label>
|
<label>
|
||||||
|
|
@ -502,6 +506,8 @@ defmodule MvWeb.CoreComponents do
|
||||||
|
|
||||||
# All other inputs text, datetime-local, url, password, etc. are handled here...
|
# All other inputs text, datetime-local, url, password, etc. are handled here...
|
||||||
def input(assigns) do
|
def input(assigns) do
|
||||||
|
assigns = ensure_aria_required_for_input(assigns)
|
||||||
|
|
||||||
~H"""
|
~H"""
|
||||||
<fieldset class="mb-2 fieldset">
|
<fieldset class="mb-2 fieldset">
|
||||||
<label>
|
<label>
|
||||||
|
|
@ -529,6 +535,18 @@ defmodule MvWeb.CoreComponents do
|
||||||
"""
|
"""
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# WCAG 2.1: set aria-required when required is true so screen readers announce required state
|
||||||
|
defp ensure_aria_required_for_input(assigns) do
|
||||||
|
rest = assigns.rest || %{}
|
||||||
|
|
||||||
|
rest =
|
||||||
|
if rest[:required],
|
||||||
|
do: Map.put(rest, :aria_required, "true"),
|
||||||
|
else: rest
|
||||||
|
|
||||||
|
assign(assigns, :rest, rest)
|
||||||
|
end
|
||||||
|
|
||||||
# Helper used by inputs to generate form errors
|
# Helper used by inputs to generate form errors
|
||||||
defp error(assigns) do
|
defp error(assigns) do
|
||||||
~H"""
|
~H"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue