Skip to content

Commit a9eb706

Browse files
authored
fix: radio field accessibility (#3666)
* fix * test
1 parent 1c5ae81 commit a9eb706

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

Diff for: app/components/avo/fields/radio_field/edit_component.html.erb

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
<div class="flex flex-col gap-2">
33
<% @field.options.each do |key, value| %>
44
<div>
5-
<%= form.radio_button @field.id, key %>
6-
<%= form.label @field.id, value, value: value %>
5+
<%= form.radio_button @field.id, key, checked: (@field.value.to_s == key.to_s) %>
6+
<%= form.label @field.id, value, value: key %>
77
</div>
88
<% end %>
99
</div>

Diff for: spec/dummy/app/avo/actions/sub/dummy_action.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ class Avo::Actions::Sub::DummyAction < Avo::BaseAction
1313
end
1414

1515
def fields
16-
field :size, as: :radio, options: {small: "Small Option", medium: "Medium Option", large: "Large Option"}
16+
field :size, as: :radio, options: {small: "Small Option", medium: "Medium Option", large: "Large Option"}, default: :medium
1717
TestBuddy.hi("Dummy action fields")
1818
field :keep_modal_open, as: :boolean
1919
field :persistent_text, as: :text

Diff for: spec/features/avo/radio_field_spec.rb

+5
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,12 @@
7575

7676
expect(page).to have_text("Small Option")
7777
expect(page).to have_text("Medium Option")
78+
expect(page).to have_checked_field("fields_size_medium")
7879
expect(page).to have_text("Large Option")
80+
81+
find("label[for='fields_size_large']").click
82+
expect(page).not_to have_checked_field("fields_size_medium")
83+
expect(page).to have_checked_field("fields_size_large")
7984
end
8085
end
8186
end

0 commit comments

Comments
 (0)