diff --git a/lib/mv_web/live/member_live/show.ex b/lib/mv_web/live/member_live/show.ex
index 479f170..c9c92f0 100644
--- a/lib/mv_web/live/member_live/show.ex
+++ b/lib/mv_web/live/member_live/show.ex
@@ -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
"""
else
- ~H"""
- —
- """
+ 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"""
- —
+
+ —
+ {@text}
+
"""
end
end