From c353d3703bc4c2889685c0908565ebe29c4b67bc Mon Sep 17 00:00:00 2001 From: Eva Date: Fri, 20 Jan 2023 12:39:07 +0100 Subject: [PATCH] :sparkles: Add some accessibility on shortcuts panel --- CHANGES.md | 1 + .../styles/main/partials/sidebar.scss | 12 +++++-- .../main/ui/workspace/sidebar/shortcuts.cljs | 32 ++++++++++++++++--- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 23a8bf402..795ffd044 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -9,6 +9,7 @@ - Show board miniature in manual overlay setting [Taiga #4475](https://tree.taiga.io/project/penpot/issue/4475) - Handoff visual improvements [Taiga #3124](https://tree.taiga.io/project/penpot/us/3124) - Dynamic alignment only in sight [Github 1971](https://github.com/penpot/penpot/issues/1971) +- Add some accessibility to shortcut panel [Taiga #4713](https://tree.taiga.io/project/penpot/issue/4713) ### :bug: Bugs fixed diff --git a/frontend/resources/styles/main/partials/sidebar.scss b/frontend/resources/styles/main/partials/sidebar.scss index ffae5942e..c5765c444 100644 --- a/frontend/resources/styles/main/partials/sidebar.scss +++ b/frontend/resources/styles/main/partials/sidebar.scss @@ -433,8 +433,16 @@ button.collapse-sidebar { display: flex; justify-content: center; align-items: center; - &.close { - transform: rotate(45deg); + border: none; + background-color: transparent; + padding: 0; + .icon { + display: flex; + justify-content: center; + align-items: center; + &.close { + transform: rotate(45deg); + } } } svg { diff --git a/frontend/src/app/main/ui/workspace/sidebar/shortcuts.cljs b/frontend/src/app/main/ui/workspace/sidebar/shortcuts.cljs index 4a2a6d6fc..853c49c9a 100644 --- a/frontend/src/app/main/ui/workspace/sidebar/shortcuts.cljs +++ b/frontend/src/app/main/ui/workspace/sidebar/shortcuts.cljs @@ -9,6 +9,7 @@ [app.common.data :as d] [app.config :as cf] [app.main.data.dashboard.shortcuts] + [app.main.data.events :as ev] [app.main.data.shortcuts :as ds] [app.main.data.viewer.shortcuts] [app.main.data.workspace :as dw] @@ -18,6 +19,7 @@ [app.main.ui.icons :as i] [app.util.dom :as dom] [app.util.i18n :refer [tr]] + [app.util.keyboard :as kbd] [app.util.strings :refer [matches-search]] [clojure.set :as set] [clojure.string] @@ -450,7 +452,24 @@ (mf/use-callback (fn [_] (reset! open-sections [[1]]) - (reset! filter-term "")))] + (reset! filter-term ""))) + + manage-key-down + (mf/use-callback + (fn [event] + (when (kbd/esc? event) + (st/emit! (-> (dw/toggle-layout-flag :shortcuts) + (vary-meta assoc ::ev/origin "shortcuts-panel")))))) + + on-key-down + (mf/use-callback + (fn [event] + (when (kbd/enter? event) + (on-search-clear-click) + (dom/focus! (dom/get-element "shortcut-search")))))] + + (mf/with-effect [] + (dom/focus! (dom/get-element "shortcut-search"))) [:div.shortcuts [:div.shortcuts-header @@ -465,13 +484,16 @@ :type "text" :value @filter-term :on-change on-search-term-change - :auto-complete "off"}] + :auto-complete "off" + :on-key-down manage-key-down}] (if (str/empty? @filter-term) [:span.icon-wrapper i/search] - [:span.icon-wrapper.close - {:on-click on-search-clear-click} - i/close])]] + [:button.icon-wrapper + {:on-click on-search-clear-click + :on-key-down on-key-down} + [:span.icon.close + i/close]])]] (if match-any? [:div.shortcut-list (for [section all-shortcuts]