diff --git a/lib/claper_web/live/event_live/manage.html.heex b/lib/claper_web/live/event_live/manage.html.heex
index a8ea5ea8..0e959190 100644
--- a/lib/claper_web/live/event_live/manage.html.heex
+++ b/lib/claper_web/live/event_live/manage.html.heex
@@ -773,13 +773,18 @@
- <%= gettext("Show instructions") %>
+ <%= gettext("Show instructions") %>(Q)
-
- <%= gettext("Show messages") %>
+
+ <%= gettext("Show messages") %>(W)
@@ -787,8 +792,9 @@
key={:poll_visible}
disabled={!@current_poll}
checked={@state.poll_visible}
+ shortcut="E"
/>
- <%= gettext("Show poll results") %>
+ <%= gettext("Show poll results") %>(E)
@@ -796,16 +802,23 @@
<%= gettext("Attendees settings") %>
-
- <%= gettext("Enable messages") %>
+
+ <%= gettext("Enable messages") %>(A)
- <%= gettext("Enable anonymous messages") %>
+
+ <%= gettext("Enable anonymous messages") %>(S)
+
diff --git a/lib/claper_web/views/components/input_component.ex b/lib/claper_web/views/components/input_component.ex
index 1285b6aa..12a0e8aa 100644
--- a/lib/claper_web/views/components/input_component.ex
+++ b/lib/claper_web/views/components/input_component.ex
@@ -70,6 +70,7 @@ defmodule ClaperWeb.Component.Input do
assigns =
assigns
|> assign_new(:disabled, fn -> false end)
+ |> assign_new(:shortcut, fn -> nil end)
~H"""
@@ -82,6 +83,8 @@ defmodule ClaperWeb.Component.Input do
class={"#{if @checked, do: 'bg-primary-600', else: 'bg-gray-200'} relative inline-flex flex-shrink-0 h-8 w-14 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200"}
role="switch"
aria-checked="false"
+ phx-key={@shortcut}
+ phx-window-keydown={if @shortcut && not @disabled, do: checked(@checked, @key)}
>