Forráskód Böngészése

Make checkbox settings accessible

tusooa 1 éve
szülő
commit
6158b8667e

+ 12 - 0
src/_mixins.scss

@@ -16,3 +16,15 @@
     @content;
   }
 }
+
+@mixin visible-for-screenreader-only {
+  display: block;
+  width: 1px;
+  height: 1px;
+  margin: -1px;
+  overflow: hidden;
+  visibility: visible;
+  clip: rect(0 0 0 0);
+  padding: 0;
+  position: absolute;
+}

+ 6 - 2
src/components/checkbox/checkbox.vue

@@ -10,7 +10,10 @@
       :indeterminate="indeterminate"
       @change="$emit('update:modelValue', $event.target.checked)"
     >
-    <i class="checkbox-indicator" />
+    <i
+      class="checkbox-indicator"
+      :aria-hidden="true"
+    />
     <span
       v-if="!!$slots.default"
       class="label"
@@ -33,6 +36,7 @@ export default {
 
 <style lang="scss">
 @import "../../variables";
+@import "../../mixins";
 
 .checkbox {
   position: relative;
@@ -81,7 +85,7 @@ export default {
   }
 
   input[type="checkbox"] {
-    display: none;
+    @include visible-for-screenreader-only;
 
     &:checked + .checkbox-indicator::before {
       color: $fallback--text;

+ 3 - 6
src/components/screen_reader_notice/screen_reader_notice.vue

@@ -10,12 +10,9 @@
 <script src="./screen_reader_notice.js"></script>
 
 <style lang="scss">
+@import "../../mixins";
+
 .screen-reader-text {
-  display: block;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  overflow: hidden;
-  visibility: visible;
+  @include visible-for-screenreader-only;
 }
 </style>