Enhances accessibiity closes #421 #450

Merged
carla merged 15 commits from feat/421_accessibility into main 2026-02-26 21:03:02 +01:00
4 changed files with 19 additions and 8 deletions
Showing only changes of commit 7f15909cc6 - Show all commits

View file

@ -54,6 +54,7 @@ defmodule MvWeb.CustomFieldLive.IndexComponent do
<.table <.table
id="custom_fields_table" id="custom_fields_table"
rows={@streams.custom_fields} rows={@streams.custom_fields}
row_id={fn {_stream_key, cf} -> "custom_fields-#{cf.id}" end}
row_click={ row_click={
fn {_id, custom_field} -> fn {_id, custom_field} ->
JS.push("edit_custom_field", value: %{id: custom_field.id}, target: @myself) JS.push("edit_custom_field", value: %{id: custom_field.id}, target: @myself)

View file

@ -307,6 +307,7 @@ defmodule MvWeb.RoleLive.Show do
type="button" type="button"
variant="danger" variant="danger"
phx-click={JS.push("delete", value: %{id: @role.id})} phx-click={JS.push("delete", value: %{id: @role.id})}
data-testid="role-delete-confirm"
aria-label={gettext("Delete role")} aria-label={gettext("Delete role")}
> >
{gettext("Delete")} {gettext("Delete")}

View file

@ -46,15 +46,19 @@ defmodule MvWeb.CustomFieldLive.DeletionTest do
%{conn: conn, user: user_with_role} %{conn: conn, user: user_with_role}
end end
# Delete is in the edit form (FormComponent); open form by clicking the name cell (unique td with phx-click) # Delete is in the edit form (FormComponent). First row click opens form (overview) or switches
# to edit-mode (new component shows table). If delete button is visible, click it; else click row
# again to open the form, then click delete.
defp open_delete_modal(view, custom_field) do defp open_delete_modal(view, custom_field) do
view row_selector = "tr#custom_fields-#{custom_field.id} td"
|> element("tr#custom_fields-#{custom_field.id} td", custom_field.name) view |> element(row_selector, custom_field.name) |> render_click()
|> render_click()
view if has_element?(view, "[data-testid=custom-field-delete]") do
|> element("[data-testid=custom-field-delete]") view |> element("[data-testid=custom-field-delete]") |> render_click()
|> render_click() else
view |> element(row_selector, custom_field.name) |> render_click()
view |> element("[data-testid=custom-field-delete]") |> render_click()
end
end end
describe "delete button and modal" do describe "delete button and modal" do

View file

@ -386,11 +386,16 @@ defmodule MvWeb.RoleLiveTest do
{:ok, view, _html} = live(conn, "/admin/roles/#{role.id}") {:ok, view, _html} = live(conn, "/admin/roles/#{role.id}")
# Delete from Danger zone on show page # Open delete modal from Danger zone
view view
|> element("[data-testid=role-delete]") |> element("[data-testid=role-delete]")
|> render_click() |> render_click()
# Confirm deletion in modal
view
|> element("[data-testid=role-delete-confirm]")
|> render_click()
assert_redirect(view, "/admin/roles") assert_redirect(view, "/admin/roles")
# Verify deletion by checking database # Verify deletion by checking database