immich/web/src/lib/components/elements/checkbox.svelte
Ben 53d571d29e
feat(web,a11y): form and search filter accessibility (#9087)
* feat(web,a11y): search filter accessibility

- visible focus rings
- labels for text search
- responsive buttons / radio buttons / checkboxes
- buttons to lowercase
- add fieldsets to radio buttons and checkboxes, so the screen reader
  announces the label for the group

* feat: extract inputs into reusable components, replace all checkboxes

* chore: revert changes to responsive buttons

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2024-04-26 01:18:19 -05:00

24 lines
604 B
Svelte

<script lang="ts">
export let id: string;
export let label: string;
export let checked: boolean | undefined = undefined;
export let disabled: boolean = false;
export let labelClass: string | undefined = undefined;
export let name: string | undefined = undefined;
export let value: string | undefined = undefined;
</script>
<div class="flex items-center space-x-2">
<input
type="checkbox"
{name}
{id}
{value}
{disabled}
class="size-5 flex-shrink-0 focus-visible:ring"
bind:checked
on:change
/>
<label class={labelClass} for={id}>{label}</label>
</div>