Skip to content

Commit f293b42

Browse files
✨ Enhance accessibility for theme toggle component with ARIA attributes and improved semantics
1 parent faac8d2 commit f293b42

File tree

1 file changed

+29
-4
lines changed

1 file changed

+29
-4
lines changed

resources/views/components/theme-toggle.blade.php

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,16 +120,25 @@ class="theme-selector relative -mx-1.5 h-10 w-10 cursor-pointer select-none hove
120120
})
121121
},
122122
}"
123+
role="button"
124+
aria-label="Toggle between light and dark mode"
125+
x-bind:aria-pressed="darkMode ? 'true' : 'false'"
126+
tabindex="0"
123127
>
128+
<span class="sr-only">Toggle theme</span>
129+
124130
{{-- Moon --}}
125131
<div
126132
class="theme-selector-moon absolute right-1/2 top-1/2 -translate-y-1/2 translate-x-1/2"
133+
aria-hidden="true"
127134
>
128135
<div class="-scale-x-100 transition duration-300">
129136
<svg
130137
xmlns="http://www.w3.org/2000/svg"
131138
class="size-[22px]"
132139
viewBox="0 0 16 16"
140+
aria-hidden="true"
141+
focusable="false"
133142
>
134143
<path
135144
fill="currentColor"
@@ -139,12 +148,17 @@ class="size-[22px]"
139148
</div>
140149
</div>
141150
{{-- Mini star --}}
142-
<div class="theme-selector-mini-star absolute left-[.6rem] top-[.6rem]">
151+
<div
152+
class="theme-selector-mini-star absolute left-[.6rem] top-[.6rem]"
153+
aria-hidden="true"
154+
>
143155
<div class="transition duration-300">
144156
<svg
145157
xmlns="http://www.w3.org/2000/svg"
146158
class="size-[7px]"
147159
viewBox="0 0 256 256"
160+
aria-hidden="true"
161+
focusable="false"
148162
>
149163
<path
150164
fill="currentColor"
@@ -154,12 +168,17 @@ class="size-[7px]"
154168
</div>
155169
</div>
156170
{{-- Micro star --}}
157-
<div class="theme-selector-micro-star absolute left-[1rem] top-[1rem]">
171+
<div
172+
class="theme-selector-micro-star absolute left-[1rem] top-[1rem]"
173+
aria-hidden="true"
174+
>
158175
<div class="transition duration-300">
159176
<svg
160177
xmlns="http://www.w3.org/2000/svg"
161178
class="size-[5px]"
162179
viewBox="0 0 256 256"
180+
aria-hidden="true"
181+
focusable="false"
163182
>
164183
<path
165184
fill="currentColor"
@@ -169,15 +188,21 @@ class="size-[5px]"
169188
</div>
170189
</div>
171190
{{-- Sun ball --}}
172-
<div class="absolute right-1/2 top-1/2 -translate-y-1/2 translate-x-1/2">
191+
<div
192+
class="absolute right-1/2 top-1/2 -translate-y-1/2 translate-x-1/2"
193+
aria-hidden="true"
194+
>
173195
<div class="theme-selector-sunball">
174196
<div
175197
class="size-3.5 rounded-full bg-current transition duration-300"
176198
></div>
177199
</div>
178200
</div>
179201
{{-- sunShine --}}
180-
<div class="theme-selector-sunshine absolute inset-0 grid h-full w-full">
202+
<div
203+
class="theme-selector-sunshine absolute inset-0 grid h-full w-full"
204+
aria-hidden="true"
205+
>
181206
<div class="relative h-full w-full">
182207
{{-- Top --}}
183208
<div

0 commit comments

Comments
 (0)