Files
habitica/website/client/src/components/sidebarButton.vue
T
J Sanderson e39d3e52e2 Fix keyboard inaccessible accordion in guild/party page fixes #12653 (#12656)
* fix: replace clickable div with button

improve accessibility for keyboard users

* refactor: extract sidebar button to own component

* refactor: button to div

* fix: lint, update sidebarSection test
2020-10-26 15:41:40 +01:00

61 lines
935 B
Vue

<template>
<div
class="toggle ml-auto"
role="button"
:aria-expanded="visible"
tabindex="0"
@keyup.enter="$emit('click')"
@click="$emit('click')"
>
<span
v-if="visible"
class="svg-icon"
v-html="icons.upIcon"
></span>
<span
v-else
class="svg-icon"
v-html="icons.downIcon"
></span>
</div>
</template>
<style lang="scss" scoped>
@import '~@/assets/scss/colors.scss';
.toggle {
border: 0;
background: transparent;
cursor: pointer;
&:focus {
outline: none;
border: $purple-400 solid 1px;
}
}
.svg-icon {
width: 16px;
}
</style>
<script>
import upIcon from '@/assets/svg/up.svg';
import downIcon from '@/assets/svg/down.svg';
export default {
props: {
visible: {
required: true,
},
},
data () {
return {
icons: {
upIcon,
downIcon,
},
};
},
};
</script>