optimizing format types for accessibility

This commit is contained in:
Antoine M 2023-10-04 14:41:47 +02:00
parent 39574e3f0b
commit 1c6200800d
6 changed files with 26 additions and 14 deletions

View File

@ -1 +1 @@
<?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-rich-text'), 'version' => 'd0f83f5f5780d1e8868a'); <?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-rich-text'), 'version' => '38f431f8844e556b89ac');

View File

@ -317,7 +317,7 @@ const Edit = props => {
}; };
(0,_wordpress_rich_text__WEBPACK_IMPORTED_MODULE_2__.registerFormatType)(formatName, { (0,_wordpress_rich_text__WEBPACK_IMPORTED_MODULE_2__.registerFormatType)(formatName, {
title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Tooltip", "homegrade-format"), title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Tooltip", "homegrade-format"),
tagName: "span", tagName: "button",
attributes: { attributes: {
definitionId: "data-definition-id", definitionId: "data-definition-id",
dataTooltipDefinition: "data-tooltip-definition", dataTooltipDefinition: "data-tooltip-definition",

File diff suppressed because one or more lines are too long

View File

@ -45,7 +45,6 @@ function create_block_multiblocks_block_init()
register_block_type(__DIR__ . '/blocks/vocabulaire-summary/build'); register_block_type(__DIR__ . '/blocks/vocabulaire-summary/build');
register_block_type(__DIR__ . '/blocks/focused-schema/build'); register_block_type(__DIR__ . '/blocks/focused-schema/build');
register_block_type(__DIR__ . '/blocks/focused-thematique/build'); register_block_type(__DIR__ . '/blocks/focused-thematique/build');
// register_block_type(__DIR__ . '/blocks/chapitrage-thematique/build');
// register_block_type(__DIR__ . '/blocks/illustration-thematique/build'); // register_block_type(__DIR__ . '/blocks/illustration-thematique/build');
// Statics // Statics
@ -54,8 +53,9 @@ function create_block_multiblocks_block_init()
register_block_type(__DIR__ . '/blocks/picture-banner/build'); register_block_type(__DIR__ . '/blocks/picture-banner/build');
register_block_type(__DIR__ . '/blocks/highlight/build'); register_block_type(__DIR__ . '/blocks/highlight/build');
register_block_type(__DIR__ . '/blocks/aside/build'); register_block_type(__DIR__ . '/blocks/aside/build');
register_block_type(__DIR__ . '/blocks/table/build');
register_block_type(__DIR__ . '/blocks/plus-loin/build'); register_block_type(__DIR__ . '/blocks/plus-loin/build');
register_block_type(__DIR__ . '/blocks/chapitrage-thematique/build');
// register_block_type(__DIR__ . '/blocks/table/build');
} }
add_action('init', 'create_block_multiblocks_block_init'); add_action('init', 'create_block_multiblocks_block_init');

View File

@ -1,9 +1,13 @@
function initTooltips(tooltipWords) { function initTooltips(tooltipWords) {
tooltipWords.forEach((word) => { tooltipWords.forEach((word) => {
word.setAttribute("tabindex", "0"); word.setAttribute("tabindex", "0");
word.setAttribute("aria-expanded", "false");
word.setAttribute("aria-description", "voir définition");
createTooltip(word); createTooltip(word);
}); });
} }
function createTooltip(tooltipWord) { function createTooltip(tooltipWord) {
const tooltipPopup = document.createElement("div"); const tooltipPopup = document.createElement("div");
tooltipPopup.className = "tooltip-popup"; tooltipPopup.className = "tooltip-popup";
@ -20,30 +24,38 @@ function createTooltip(tooltipWord) {
tooltipPopup.appendChild(tooltipTitle); tooltipPopup.appendChild(tooltipTitle);
tooltipPopup.appendChild(tooltipDefinition); tooltipPopup.appendChild(tooltipDefinition);
tooltipWord.appendChild(tooltipPopup); tooltipWord.appendChild(tooltipPopup);
// tooltipWord.insertAdjacentElement("afterend", tooltipPopup); // tooltipWord.insertAdjacentElement("afterend", tooltipPopup);
} }
function showTooltip(tooltipWord) { function showTooltip(tooltipWord) {
tooltipWord.setAttribute("aria-expanded", "true");
const tooltipPopup = tooltipWord.querySelector(".tooltip-popup"); const tooltipPopup = tooltipWord.querySelector(".tooltip-popup");
tooltipPopup.setAttribute("aria-hidden", "false"); tooltipPopup.setAttribute("aria-hidden", "false");
} }
function hideTooltip(tooltipWord) { function hideTooltip(tooltipWord) {
tooltipWord.setAttribute("aria-expanded", "false");
const tooltipPopup = tooltipWord.querySelector(".tooltip-popup"); const tooltipPopup = tooltipWord.querySelector(".tooltip-popup");
tooltipPopup.setAttribute("aria-hidden", "true"); tooltipPopup.setAttribute("aria-hidden", "true");
} }
function toggleTooltip(tooltipWord) {
const isExpanded = tooltipWord.getAttribute("aria-expanded") === "true";
if (isExpanded) {
hideTooltip(tooltipWord);
} else {
showTooltip(tooltipWord);
}
}
window.addEventListener("DOMContentLoaded", (event) => { window.addEventListener("DOMContentLoaded", (event) => {
let tooltipWords = document.querySelectorAll("[data-tooltip-definition]"); let tooltipWords = document.querySelectorAll("[data-tooltip-definition]");
tooltipWords.forEach((tooltipWord) => { tooltipWords.forEach((tooltipWord) => {
tooltipWord.addEventListener("click", (event) => { tooltipWord.addEventListener("click", (event) => {
showTooltip(tooltipWord); // showTooltip(tooltipWord);
toggleTooltip(tooltipWord);
}); });
tooltipWord.addEventListener("keydown", (event) => { tooltipWord.addEventListener("keydown", (event) => {
switch (event.key) { switch (event.key) {
case "Enter":
toggleTooltip(tooltipWord);
break;
case "Escape": case "Escape":
hideTooltip(tooltipWord); hideTooltip(tooltipWord);
break; break;
@ -59,9 +71,9 @@ window.addEventListener("DOMContentLoaded", (event) => {
hideTooltip(tooltipWord); hideTooltip(tooltipWord);
} }
}); });
tooltipWord.addEventListener("focusin", (event) => { // tooltipWord.addEventListener("focusin", (event) => {
showTooltip(tooltipWord); // showTooltip(tooltipWord);
}); // });
tooltipWord.addEventListener("focusout", (event) => { tooltipWord.addEventListener("focusout", (event) => {
hideTooltip(tooltipWord); hideTooltip(tooltipWord);
}); });

View File

@ -138,7 +138,7 @@ const Edit = (props) => {
registerFormatType(formatName, { registerFormatType(formatName, {
title: __("Tooltip", "homegrade-format"), title: __("Tooltip", "homegrade-format"),
tagName: "span", tagName: "button",
attributes: { attributes: {
definitionId: "data-definition-id", definitionId: "data-definition-id",
dataTooltipDefinition: "data-tooltip-definition", dataTooltipDefinition: "data-tooltip-definition",