Skip to content

Commit 33a7afc

Browse files
authored
fix: improve a11y for devtools client (#216)
1 parent 7b8cd17 commit 33a7afc

File tree

6 files changed

+20
-5
lines changed

6 files changed

+20
-5
lines changed

packages/rolldown/src/app/components/display/IconButton.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ const props = defineProps<{
88

99
<template>
1010
<button
11+
type="button"
1112
w-8 h-8 rounded-full flex items-center justify-center
1213
:class="props.active ? 'bg-active op90 text-green-400' : ''"
1314
hover="bg-active op100" op50 :title="props.title"
15+
:aria-label="props.title"
1416
>
1517
<slot><div :class="props.classIcon" /></slot>
1618
</button>
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
<script setup lang="ts">
22
import { onMounted, ref } from 'vue'
33
4-
const props = defineProps<{
4+
const {
5+
src,
6+
alt = '',
7+
} = defineProps<{
58
src: string
9+
alt?: string
610
}>()
711
812
const success = ref(false)
913
1014
onMounted(() => {
1115
const img = new Image()
12-
img.src = props.src
16+
img.src = src
1317
img.onload = () => {
1418
success.value = true
1519
}
@@ -19,7 +23,8 @@ onMounted(() => {
1923
<template>
2024
<img
2125
v-if="success"
22-
:src="props.src"
26+
:src="src"
27+
:alt="alt"
2328
@error="success = false"
2429
>
2530
</template>

packages/rolldown/src/app/components/panel/SessionSelector.vue

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,10 @@ function select(session: BuildInfo) {
4040
<div flex="~ col gap-2">
4141
<div v-for="session of sessions" :key="session.id" flex="~ row gap-2" relative>
4242
<component
43-
:is="sessionMode === 'list' ? NuxtLink : 'div'"
43+
:is="sessionMode === 'list' ? NuxtLink : 'button'"
4444
:to="`/session/${session.id}`"
45+
v-bind="sessionMode !== 'list' ? { type: 'button' } : {}"
46+
:aria-label="`Session ${session.id}`"
4547
border="~ rounded-md"
4648
:class="sessionMode === 'list' ? ['hover:bg-active', 'border-base'] : [selectedSessionIds.includes(session.id) ? 'border-active' : 'border-base', checkIsDifferentEntry(session) || (selectedSessions.length === 2 && !selectedSessionIds.includes(session.id)) ? 'op50' : 'hover:bg-active']"
4749
flex="~ col gap-1"

packages/ui/src/components/DisplayCloseButton.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<template>
22
<button
3+
type="button"
34
w-8 h-8 rounded-full flex items-center justify-center
45
hover="bg-active op100" op50 title="Close"
6+
aria-label="Close"
57
>
68
<div i-ph-x />
79
</button>

packages/ui/src/components/DisplayIconButton.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,12 @@ const props = defineProps<{
88

99
<template>
1010
<button
11+
type="button"
1112
w-8 h-8 rounded-full flex items-center justify-center
1213
:class="props.active ? 'bg-active op90 text-green-400' : ''"
1314
hover="bg-active op100" op50 :title="props.title"
15+
:aria-label="props.title"
16+
:aria-pressed="props.active"
1417
>
1518
<slot><div :class="props.classIcon" /></slot>
1619
</button>

packages/ui/src/components/PanelSideNav.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ const items = computed<SideNavItem[]>(() => {
3737
<template v-for="item in items" :key="item.title">
3838
<component
3939
:is="item.to ? NuxtLink : 'button'"
40-
v-bind="item.to ? { to: item.to } : {}"
40+
v-bind="item.to ? { to: item.to } : { type: 'button' }"
4141
v-tooltip="{ placement: 'right', content: item.title }"
4242
:title="item.title"
43+
:aria-label="item.title"
4344
rounded-full
4445
p2 hover:bg-active op-fade hover:op100
4546
flex="~ items-center justify-center"

0 commit comments

Comments
 (0)