From 7691b260a362b8b0515c7525f8b1444a2148ecd5 Mon Sep 17 00:00:00 2001 From: daudix Date: Thu, 20 Jun 2024 06:48:56 +0300 Subject: [PATCH] Fix missing labels (a11y) Additionally add some missing translations --- config.toml | 6 ++++ sass/_hidden.scss | 9 ++++++ sass/_nav.scss | 4 --- sass/style.scss | 1 + static/copy-button.js | 37 ------------------------- templates/partials/copy-button.html | 43 +++++++++++++++++++++++++++++ templates/partials/head.html | 2 +- templates/partials/nav.html | 4 +-- 8 files changed, 62 insertions(+), 44 deletions(-) create mode 100644 sass/_hidden.scss delete mode 100644 static/copy-button.js create mode 100644 templates/partials/copy-button.html diff --git a/config.toml b/config.toml index 6f1d48b..06cab53 100644 --- a/config.toml +++ b/config.toml @@ -22,6 +22,7 @@ comments = "Comments" comments_description = "You can comment on this blog post by publicly replying to this post using a Mastodon or other ActivityPub/Fediverse account. Known non-private replies are displayed below." comments_loading = "Loading" comments_noscript = "Loading comments relies on JavaScript. Try enabling JavaScript and reloading, or visit the original post on Mastodon." +copy_code = "Copy code" disclaimer = "Disclaimer" drafted = "Drafted" faves_from = "Favorites from" @@ -32,6 +33,7 @@ footer_powered_by = "Powered by" footer_powered_by_and = "and" footer_source = "Website source" go_to_top = "Go to Top" +language = "Language" load_comments = "Load Comments" newest_to_oldest = "From newest to oldest" open_post = "Open Post" @@ -65,6 +67,7 @@ comments = "Комментарии" comments_description = "Вы можете оставить комментарий к этому блог-посту, публично ответив на него с помощью аккаунта Mastodon или другого аккаунта ActivityPub/Fediverse. Известные неприватные ответы отображены ниже." comments_loading = "Загрузка…" comments_noscript = "Загрузка комментариев зависит от JavaScript. Попробуйте включить JavaScript и перезагрузить, или посетите оригинальный пост на Mastodon." +copy_code = "Скопировать код" disclaimer = "Дисклеймер" drafted = "Черновик" faves_from = "Избранное с" @@ -75,6 +78,7 @@ footer_powered_by = "Работает на базе" footer_powered_by_and = "и" footer_source = "Исходный код веб-сайта" go_to_top = "Перейти в Начало" +language = "Язык" load_comments = "Загрузить Комментарии" newest_to_oldest = "От новейшего к старейшему" open_post = "Открыть Пост" @@ -108,6 +112,7 @@ comments = "التعليقات" comments_description = "يمكنك التعليق على منشور المدونة هذا عن طريق الرد علنًا على هذا المنشور باستخدام حساب Mastodon أو حساب آخر على ActivityPub/Fediverse. يتم عرض الردود المعروفة غير الخاصة أدناه." comments_loading = "التحميل" comments_noscript = "تحميل التعليقات يعتمد على JavaScript. حاول تمكين JavaScript وإعادة التحميل، أو قم بزيارة المنشور الأصلي على Mastodon." +copy_code = "نسخ الرمز" disclaimer = "إخلاء المسؤولية" drafted = "مسودة" faves_from = "المفضلة من" @@ -118,6 +123,7 @@ footer_powered_by = "مدعوم من" footer_powered_by_and = "و" footer_source = "مصدر الموقع الإلكتروني" go_to_top = "الانتقال إلى الأعلى" +language = "اللغة" load_comments = "تحميل التعليقات" newest_to_oldest = "من الأحدث إلى الأقدم" open_post = "افتح المنشور" diff --git a/sass/_hidden.scss b/sass/_hidden.scss new file mode 100644 index 0000000..dd96e44 --- /dev/null +++ b/sass/_hidden.scss @@ -0,0 +1,9 @@ +.hidden:not(:focus):not(:active) { + clip: rect(0 0 0 0); + position: absolute; + clip-path: inset(100%); + width: 1px; + height: 1px; + overflow: hidden; + white-space: nowrap; +} diff --git a/sass/_nav.scss b/sass/_nav.scss index 008d301..abf5af5 100644 --- a/sass/_nav.scss +++ b/sass/_nav.scss @@ -141,10 +141,6 @@ width: 1rem; height: 1rem; } - - span { - display: none; - } } &#feed .icon { diff --git a/sass/style.scss b/sass/style.scss index fa9cf41..cffe73b 100644 --- a/sass/style.scss +++ b/sass/style.scss @@ -17,6 +17,7 @@ @use "external"; @use "footer"; @use "general"; +@use "hidden"; @use "icon"; @use "input"; @use "media"; diff --git a/static/copy-button.js b/static/copy-button.js deleted file mode 100644 index 8ff13c8..0000000 --- a/static/copy-button.js +++ /dev/null @@ -1,37 +0,0 @@ -// Based on https://www.roboleary.net/2022/01/13/copy-code-to-clipboard-blog.html -document.addEventListener("DOMContentLoaded", function () { - let blocks = document.querySelectorAll("pre[class^='language-']"); - - blocks.forEach((block) => { - if (navigator.clipboard) { - let container = document.createElement("div"); - container.classList.add("pre-container"); - - block.parentNode.insertBefore(container, block); - container.appendChild(block); - - let button = document.createElement("button"); - let icon = document.createElement("i"); - icon.classList.add("icon"); - button.appendChild(icon); - container.appendChild(button); - - button.addEventListener("click", async () => { - await copyCode(block, button); - }); - } - }); - - async function copyCode(block, button) { - let code = block.querySelector("code"); - let text = code.innerText; - - await navigator.clipboard.writeText(text); - - button.classList.add("active"); - - setTimeout(() => { - button.classList.remove("active"); - }, 800); - } -}); diff --git a/templates/partials/copy-button.html b/templates/partials/copy-button.html new file mode 100644 index 0000000..21383e5 --- /dev/null +++ b/templates/partials/copy-button.html @@ -0,0 +1,43 @@ + diff --git a/templates/partials/head.html b/templates/partials/head.html index 3fba159..bfe87a2 100644 --- a/templates/partials/head.html +++ b/templates/partials/head.html @@ -32,7 +32,7 @@ {% endif %} {% if config.extra.show_copy_button %} - + {% include "partials/copy-button.html" %} {% endif %} {% if config.extra.scripts %} diff --git a/templates/partials/nav.html b/templates/partials/nav.html index ee0c94d..30c9ba2 100644 --- a/templates/partials/nav.html +++ b/templates/partials/nav.html @@ -49,7 +49,7 @@
- Languages +