diff --git a/src/ui/field-renderers.ts b/src/ui/field-renderers.ts index ea7d3fe..8018788 100644 --- a/src/ui/field-renderers.ts +++ b/src/ui/field-renderers.ts @@ -135,6 +135,15 @@ function renderToggle( const toggle = controlEl.createDiv({ cls: 'checkbox-container' }); if (enabled) toggle.addClass('is-enabled'); + toggle.setAttribute('tabindex', '0'); + toggle.addEventListener('keydown', (e: KeyboardEvent) => { + if (e.key === ' ' || e.key === 'Enter') { + e.preventDefault(); + enabled = !enabled; + toggle.toggleClass('is-enabled', enabled); + } + }); + toggle.addEventListener('click', () => { enabled = !enabled; toggle.toggleClass('is-enabled', enabled); @@ -531,6 +540,19 @@ function renderRating( updateStars(); }); + ratingEl.setAttribute('tabindex', '0'); + ratingEl.addEventListener('keydown', (e: KeyboardEvent) => { + if (e.key === 'ArrowRight' || e.key === 'ArrowUp') { + e.preventDefault(); + rating = Math.min(5, rating + 1); + updateStars(); + } else if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') { + e.preventDefault(); + rating = Math.max(1, rating - 1); + updateStars(); + } + }); + updateStars(); return {