Merge branch 'tusooa/checkbox-accessibility' into 'develop'
Make checkbox settings accessible See merge request pleroma/pleroma-fe!1778
This commit is contained in:
commit
06551d447c
14
src/App.scss
14
src/App.scss
|
@ -580,8 +580,6 @@ textarea,
|
||||||
}
|
}
|
||||||
|
|
||||||
&[type="checkbox"] {
|
&[type="checkbox"] {
|
||||||
display: none;
|
|
||||||
|
|
||||||
&:checked + label::before {
|
&:checked + label::before {
|
||||||
color: $fallback--text;
|
color: $fallback--text;
|
||||||
color: var(--inputText, $fallback--text);
|
color: var(--inputText, $fallback--text);
|
||||||
|
@ -887,3 +885,15 @@ option {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
/* stylelint-enable no-descending-specificity */
|
/* stylelint-enable no-descending-specificity */
|
||||||
|
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
|
@ -5,12 +5,16 @@
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
|
class="visible-for-screenreader-only"
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
:checked="modelValue"
|
:checked="modelValue"
|
||||||
:indeterminate="indeterminate"
|
:indeterminate="indeterminate"
|
||||||
@change="$emit('update:modelValue', $event.target.checked)"
|
@change="$emit('update:modelValue', $event.target.checked)"
|
||||||
>
|
>
|
||||||
<i class="checkbox-indicator" />
|
<i
|
||||||
|
class="checkbox-indicator"
|
||||||
|
:aria-hidden="true"
|
||||||
|
/>
|
||||||
<span
|
<span
|
||||||
v-if="!!$slots.default"
|
v-if="!!$slots.default"
|
||||||
class="label"
|
class="label"
|
||||||
|
@ -33,6 +37,7 @@ export default {
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import "../../variables";
|
@import "../../variables";
|
||||||
|
@import "../../mixins";
|
||||||
|
|
||||||
.checkbox {
|
.checkbox {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -81,8 +86,6 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="checkbox"] {
|
input[type="checkbox"] {
|
||||||
display: none;
|
|
||||||
|
|
||||||
&:checked + .checkbox-indicator::before {
|
&:checked + .checkbox-indicator::before {
|
||||||
color: $fallback--text;
|
color: $fallback--text;
|
||||||
color: var(--inputText, $fallback--text);
|
color: var(--inputText, $fallback--text);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
class="screen-reader-text"
|
class="visible-for-screenreader-only"
|
||||||
:aria-live="ariaLive"
|
:aria-live="ariaLive"
|
||||||
>
|
>
|
||||||
{{ currentText }}
|
{{ currentText }}
|
||||||
|
@ -8,14 +8,3 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script src="./screen_reader_notice.js"></script>
|
<script src="./screen_reader_notice.js"></script>
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.screen-reader-text {
|
|
||||||
display: block;
|
|
||||||
width: 1px;
|
|
||||||
height: 1px;
|
|
||||||
margin: -1px;
|
|
||||||
overflow: hidden;
|
|
||||||
visibility: visible;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
|
@ -5,12 +5,12 @@
|
||||||
>
|
>
|
||||||
<Popover
|
<Popover
|
||||||
trigger="hover"
|
trigger="hover"
|
||||||
|
:trigger-attrs="{ 'aria-label': $t('settings.setting_changed') }"
|
||||||
>
|
>
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
|
|
||||||
<FAIcon
|
<FAIcon
|
||||||
icon="wrench"
|
icon="wrench"
|
||||||
:aria-label="$t('settings.setting_changed')"
|
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<template #content>
|
<template #content>
|
||||||
|
|
Loading…
Reference in New Issue