mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
Fix remaining accessibility warnings (#3241)
* Remove unused build var * Fix accessibility warnings in CollapseLabel * Fix accessibility warnings in PlainTextBadge * Add ARIA role to Autocompleteitem * Fix accessibility warnings in HandleBackground * Fix accessibility warnings in HandleControl * Fix accessibility warnings in EditorField * Fix accessibility warnings in RichTextBadge * Fix accessibility warnings in StickyBadge * Remove ignored a11y warnings
This commit is contained in:
parent
486cc8a2ab
commit
d108bff862
10 changed files with 44 additions and 16 deletions
|
@ -223,18 +223,6 @@ impl BuildAction for SvelteCheck {
|
||||||
build.add_inputs("yarn", inputs![":yarn:bin"]);
|
build.add_inputs("yarn", inputs![":yarn:bin"]);
|
||||||
build.add_inputs("", &self.inputs);
|
build.add_inputs("", &self.inputs);
|
||||||
build.add_inputs("", inputs!["yarn.lock"]);
|
build.add_inputs("", inputs!["yarn.lock"]);
|
||||||
build.add_variable(
|
|
||||||
"compiler_warnings",
|
|
||||||
[
|
|
||||||
"a11y-click-events-have-key-events",
|
|
||||||
"a11y-no-noninteractive-tabindex",
|
|
||||||
"a11y-no-static-element-interactions",
|
|
||||||
]
|
|
||||||
.iter()
|
|
||||||
.map(|warning| format!("{}$:ignore", warning))
|
|
||||||
.collect::<Vec<_>>()
|
|
||||||
.join(","),
|
|
||||||
);
|
|
||||||
let hash = simple_hash(&self.tsconfig);
|
let hash = simple_hash(&self.tsconfig);
|
||||||
build.add_output_stamp(format!("tests/svelte-check.{hash}"));
|
build.add_output_stamp(format!("tests/svelte-check.{hash}"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
"dev": "cd ts && vite dev",
|
"dev": "cd ts && vite dev",
|
||||||
"build": "cd ts && vite build",
|
"build": "cd ts && vite build",
|
||||||
"preview": "cd ts && vite preview",
|
"preview": "cd ts && vite preview",
|
||||||
"svelte-check:once": "cd ts && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --fail-on-warnings --threshold warning --compiler-warnings a11y-click-events-have-key-events:ignore,a11y-no-noninteractive-tabindex:ignore,a11y-no-static-element-interactions:ignore",
|
"svelte-check:once": "cd ts && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --fail-on-warnings --threshold warning",
|
||||||
"svelte-check": "cd ts && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch --compiler-warnings a11y-click-events-have-key-events:ignore,a11y-no-noninteractive-tabindex:ignore,a11y-no-static-element-interactions:ignore",
|
"svelte-check": "cd ts && svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||||
"vitest:once": "cd ts && vitest run",
|
"vitest:once": "cd ts && vitest run",
|
||||||
"vitest": "cd ts && vitest"
|
"vitest": "cd ts && vitest"
|
||||||
},
|
},
|
||||||
|
|
|
@ -6,6 +6,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
import { createEventDispatcher } from "svelte";
|
import { createEventDispatcher } from "svelte";
|
||||||
|
|
||||||
import CollapseBadge from "./CollapseBadge.svelte";
|
import CollapseBadge from "./CollapseBadge.svelte";
|
||||||
|
import { onEnterOrSpace } from "@tslib/keys";
|
||||||
|
|
||||||
export let collapsed: boolean;
|
export let collapsed: boolean;
|
||||||
export let tooltip: string;
|
export let tooltip: string;
|
||||||
|
@ -17,7 +18,15 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<span class="collapse-label" title={tooltip} on:click|stopPropagation={toggle}>
|
<span
|
||||||
|
class="collapse-label"
|
||||||
|
title={tooltip}
|
||||||
|
on:click|stopPropagation={toggle}
|
||||||
|
on:keydown={onEnterOrSpace(() => toggle())}
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
|
aria-expanded={!collapsed}
|
||||||
|
>
|
||||||
<CollapseBadge {collapsed} />
|
<CollapseBadge {collapsed} />
|
||||||
<slot />
|
<slot />
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -89,7 +89,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
onDestroy(() => api?.destroy());
|
onDestroy(() => api?.destroy());
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="field-container" class:hide={field.hidden} on:mouseenter on:mouseleave>
|
<div
|
||||||
|
class="field-container"
|
||||||
|
class:hide={field.hidden}
|
||||||
|
on:mouseenter
|
||||||
|
on:mouseleave
|
||||||
|
role="presentation"
|
||||||
|
>
|
||||||
<slot name="field-label" />
|
<slot name="field-label" />
|
||||||
|
|
||||||
<Collapsible collapse={collapsed} let:collapsed={hidden}>
|
<Collapsible collapse={collapsed} let:collapsed={hidden}>
|
||||||
|
|
|
@ -11,6 +11,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
title={tooltip}
|
title={tooltip}
|
||||||
on:mousedown|preventDefault
|
on:mousedown|preventDefault
|
||||||
on:dblclick
|
on:dblclick
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|
|
@ -30,6 +30,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
class:nightMode={$pageTheme.isDark}
|
class:nightMode={$pageTheme.isDark}
|
||||||
class="bordered"
|
class="bordered"
|
||||||
on:mousedown|preventDefault
|
on:mousedown|preventDefault
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class:nightMode={$pageTheme.isDark}
|
class:nightMode={$pageTheme.isDark}
|
||||||
|
@ -38,6 +40,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
on:mousedown|preventDefault
|
on:mousedown|preventDefault
|
||||||
on:pointerdown={onPointerdown(true, true)}
|
on:pointerdown={onPointerdown(true, true)}
|
||||||
on:pointermove
|
on:pointermove
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class:nightMode={$pageTheme.isDark}
|
class:nightMode={$pageTheme.isDark}
|
||||||
|
@ -46,6 +50,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
on:mousedown|preventDefault
|
on:mousedown|preventDefault
|
||||||
on:pointerdown={onPointerdown(true, false)}
|
on:pointerdown={onPointerdown(true, false)}
|
||||||
on:pointermove
|
on:pointermove
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class:nightMode={$pageTheme.isDark}
|
class:nightMode={$pageTheme.isDark}
|
||||||
|
@ -54,6 +60,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
on:mousedown|preventDefault
|
on:mousedown|preventDefault
|
||||||
on:pointerdown={onPointerdown(false, true)}
|
on:pointerdown={onPointerdown(false, true)}
|
||||||
on:pointermove
|
on:pointermove
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
class:nightMode={$pageTheme.isDark}
|
class:nightMode={$pageTheme.isDark}
|
||||||
|
@ -62,6 +70,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
on:mousedown|preventDefault
|
on:mousedown|preventDefault
|
||||||
on:pointerdown={onPointerdown(false, false)}
|
on:pointerdown={onPointerdown(false, false)}
|
||||||
on:pointermove
|
on:pointermove
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import * as tr from "@generated/ftl";
|
import * as tr from "@generated/ftl";
|
||||||
import { getPlatformString, registerShortcut } from "@tslib/shortcuts";
|
import { getPlatformString, registerShortcut } from "@tslib/shortcuts";
|
||||||
|
import { onEnterOrSpace } from "@tslib/keys";
|
||||||
import { createEventDispatcher, onDestroy } from "svelte";
|
import { createEventDispatcher, onDestroy } from "svelte";
|
||||||
|
|
||||||
import Badge from "$lib/components/Badge.svelte";
|
import Badge from "$lib/components/Badge.svelte";
|
||||||
|
@ -40,6 +41,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
class:visible={show || !animated}
|
class:visible={show || !animated}
|
||||||
class:highlighted={!off}
|
class:highlighted={!off}
|
||||||
on:click|stopPropagation={toggle}
|
on:click|stopPropagation={toggle}
|
||||||
|
on:keydown={onEnterOrSpace(() => toggle())}
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
>
|
>
|
||||||
<Badge
|
<Badge
|
||||||
tooltip="{tr.editingToggleHtmlEditor()} ({getPlatformString(keyCombination)})"
|
tooltip="{tr.editingToggleHtmlEditor()} ({getPlatformString(keyCombination)})"
|
||||||
|
|
|
@ -5,6 +5,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import * as tr from "@generated/ftl";
|
import * as tr from "@generated/ftl";
|
||||||
import { getPlatformString, registerShortcut } from "@tslib/shortcuts";
|
import { getPlatformString, registerShortcut } from "@tslib/shortcuts";
|
||||||
|
import { onEnterOrSpace } from "@tslib/keys";
|
||||||
import { createEventDispatcher, onDestroy } from "svelte";
|
import { createEventDispatcher, onDestroy } from "svelte";
|
||||||
|
|
||||||
import Badge from "$lib/components/Badge.svelte";
|
import Badge from "$lib/components/Badge.svelte";
|
||||||
|
@ -40,6 +41,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
class:visible={show || !animated}
|
class:visible={show || !animated}
|
||||||
class:highlighted={!off}
|
class:highlighted={!off}
|
||||||
on:click|stopPropagation={toggle}
|
on:click|stopPropagation={toggle}
|
||||||
|
on:keydown={onEnterOrSpace(() => toggle())}
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
>
|
>
|
||||||
<Badge
|
<Badge
|
||||||
tooltip="{tr.editingToggleVisualEditor()} ({getPlatformString(keyCombination)})"
|
tooltip="{tr.editingToggleVisualEditor()} ({getPlatformString(keyCombination)})"
|
||||||
|
|
|
@ -6,6 +6,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
import * as tr from "@generated/ftl";
|
import * as tr from "@generated/ftl";
|
||||||
import { bridgeCommand } from "@tslib/bridgecommand";
|
import { bridgeCommand } from "@tslib/bridgecommand";
|
||||||
import { getPlatformString, registerShortcut } from "@tslib/shortcuts";
|
import { getPlatformString, registerShortcut } from "@tslib/shortcuts";
|
||||||
|
import { onEnterOrSpace } from "@tslib/keys";
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
|
|
||||||
import Badge from "$lib/components/Badge.svelte";
|
import Badge from "$lib/components/Badge.svelte";
|
||||||
|
@ -43,6 +44,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
class:highlighted={active}
|
class:highlighted={active}
|
||||||
class:visible={show || !animated}
|
class:visible={show || !animated}
|
||||||
on:click|stopPropagation={toggle}
|
on:click|stopPropagation={toggle}
|
||||||
|
on:keydown={onEnterOrSpace(() => toggle())}
|
||||||
|
tabindex="-1"
|
||||||
|
role="button"
|
||||||
>
|
>
|
||||||
<Badge
|
<Badge
|
||||||
tooltip="{tr.editingToggleSticky()} ({getPlatformString(keyCombination)})"
|
tooltip="{tr.editingToggleSticky()} ({getPlatformString(keyCombination)})"
|
||||||
|
|
|
@ -30,6 +30,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
on:mouseup
|
on:mouseup
|
||||||
on:mouseenter
|
on:mouseenter
|
||||||
on:mouseleave
|
on:mouseleave
|
||||||
|
role="button"
|
||||||
>
|
>
|
||||||
<slot />
|
<slot />
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue