feat: add accessible empty value also to member fields
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
carla 2025-12-23 17:10:52 +01:00
parent 398a63a98f
commit 33652265b8

View file

@ -237,7 +237,7 @@ defmodule MvWeb.MemberLive.Show do
"""
end
# Renders a mailto link if email is present, otherwise renders nothing
# Renders a mailto link if email is present, otherwise renders empty value placeholder
attr :email, :string, required: true
attr :display, :string, default: nil
@ -255,9 +255,7 @@ defmodule MvWeb.MemberLive.Show do
</a>
"""
else
~H"""
<span class="text-base-content/50 italic"></span>
"""
render_empty_value()
end
end
@ -265,8 +263,8 @@ defmodule MvWeb.MemberLive.Show do
# Helper Functions
# -----------------------------------------------------------------
defp display_value(nil), do: ""
defp display_value(""), do: ""
defp display_value(nil), do: render_empty_value()
defp display_value(""), do: render_empty_value()
defp display_value(value), do: value
defp format_address(member) do
@ -348,11 +346,16 @@ defmodule MvWeb.MemberLive.Show do
defp format_custom_field_value(value, _type), do: to_string(value)
# Renders placeholder for empty custom field values
# Renders accessible placeholder for empty values
# Uses translated text for screen readers while maintaining visual consistency
# The visual "—" is hidden from screen readers, while the translated text is only visible to screen readers
defp render_empty_value do
assigns = %{}
assigns = %{text: gettext("Not set")}
~H"""
<span class="text-base-content/50 italic"></span>
<span class="text-base-content/50 italic">
<span aria-hidden="true"></span>
<span class="sr-only">{@text}</span>
</span>
"""
end
end