diff options
| -rw-r--r-- | src/components/atoms/buttons/button.tsx | 12 | ||||
| -rw-r--r-- | src/components/molecules/buttons/help-button.tsx | 5 | ||||
| -rw-r--r-- | src/components/molecules/forms/fieldset.tsx | 1 | ||||
| -rw-r--r-- | src/components/molecules/forms/prism-theme-toggle.tsx | 14 | ||||
| -rw-r--r-- | src/components/molecules/forms/theme-toggle.tsx | 14 | ||||
| -rw-r--r-- | src/i18n/en.json | 48 | ||||
| -rw-r--r-- | src/i18n/fr.json | 50 |
7 files changed, 86 insertions, 58 deletions
diff --git a/src/components/atoms/buttons/button.tsx b/src/components/atoms/buttons/button.tsx index 9776687..fecbcfd 100644 --- a/src/components/atoms/buttons/button.tsx +++ b/src/components/atoms/buttons/button.tsx @@ -8,6 +8,14 @@ import styles from './buttons.module.scss'; export type ButtonProps = { /** + * Button accessible label. + */ + 'aria-label'?: string; + /** + * Indicates the current "pressed" state of a toggle button. + */ + 'aria-pressed'?: boolean | 'mixed'; + /** * The button body. */ children: ReactNode; @@ -16,10 +24,6 @@ export type ButtonProps = { */ className?: string; /** - * Button accessible label. - */ - 'aria-label'?: string; - /** * Button state. Default: false. */ disabled?: boolean; diff --git a/src/components/molecules/buttons/help-button.tsx b/src/components/molecules/buttons/help-button.tsx index ccf1ebd..ec89f4e 100644 --- a/src/components/molecules/buttons/help-button.tsx +++ b/src/components/molecules/buttons/help-button.tsx @@ -3,7 +3,10 @@ import { forwardRef, ForwardRefRenderFunction } from 'react'; import { useIntl } from 'react-intl'; import styles from './help-button.module.scss'; -export type HelpButtonProps = Pick<ButtonProps, 'className' | 'onClick'>; +export type HelpButtonProps = Pick< + ButtonProps, + 'aria-pressed' | 'className' | 'onClick' +>; /** * HelpButton component diff --git a/src/components/molecules/forms/fieldset.tsx b/src/components/molecules/forms/fieldset.tsx index 9f46247..670cfa1 100644 --- a/src/components/molecules/forms/fieldset.tsx +++ b/src/components/molecules/forms/fieldset.tsx @@ -100,6 +100,7 @@ const Fieldset: FC<FieldsetProps> = ({ {TooltipComponent && ( <> <HelpButton + aria-pressed={isTooltipOpened} className={`${styles.btn} ${buttonModifier}`} onClick={() => setIsTooltipOpened(!isTooltipOpened)} ref={buttonRef} diff --git a/src/components/molecules/forms/prism-theme-toggle.tsx b/src/components/molecules/forms/prism-theme-toggle.tsx index 7bf5b7c..0fd9f54 100644 --- a/src/components/molecules/forms/prism-theme-toggle.tsx +++ b/src/components/molecules/forms/prism-theme-toggle.tsx @@ -80,13 +80,23 @@ const PrismThemeToggle: FC<PrismThemeToggleProps> = (props) => { const options: RadioGroupOption[] = [ { id: 'code-blocks-light', - label: <Sun title={lightThemeLabel} />, + label: ( + <> + <span className="screen-reader-text">{lightThemeLabel}</span> + <Sun /> + </> + ), name: 'code-blocks', value: 'light', }, { id: 'code-blocks-dark', - label: <Moon title={darkThemeLabel} />, + label: ( + <> + <span className="screen-reader-text">{darkThemeLabel}</span> + <Moon /> + </> + ), name: 'code-blocks', value: 'dark', }, diff --git a/src/components/molecules/forms/theme-toggle.tsx b/src/components/molecules/forms/theme-toggle.tsx index b796b27..1c6481a 100644 --- a/src/components/molecules/forms/theme-toggle.tsx +++ b/src/components/molecules/forms/theme-toggle.tsx @@ -71,13 +71,23 @@ const ThemeToggle: FC<ThemeToggleProps> = (props) => { const options: RadioGroupOption[] = [ { id: 'theme-light', - label: <Sun title={lightThemeLabel} />, + label: ( + <> + <span className="screen-reader-text">{lightThemeLabel}</span> + <Sun /> + </> + ), name: 'theme', value: 'light', }, { id: 'theme-dark', - label: <Moon title={darkThemeLabel} />, + label: ( + <> + <span className="screen-reader-text">{darkThemeLabel}</span> + <Moon /> + </> + ), name: 'theme', value: 'dark', }, diff --git a/src/i18n/en.json b/src/i18n/en.json index 417c19b..adffe39 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -31,6 +31,10 @@ "defaultMessage": "{commentsCount, plural, =0 {No comments} one {# comment} other {# comments}}<a11y> about {title}</a11y>", "description": "Meta: comments count" }, + "0gVlI3": { + "defaultMessage": "Tracking:", + "description": "AckeeToggle: select label" + }, "16zl9Z": { "defaultMessage": "You are here:", "description": "Breadcrumb: You are here prefix" @@ -63,10 +67,6 @@ "defaultMessage": "Leave a reply", "description": "Comment: comment form title" }, - "2pmylc": { - "defaultMessage": "Tracking:", - "description": "AckeeSelect: select label" - }, "310o3F": { "defaultMessage": "Error 404: Page not found - {websiteName}", "description": "404Page: SEO - Page title" @@ -91,6 +91,10 @@ "defaultMessage": "No results found.", "description": "NoResults: no results" }, + "5eD6y2": { + "defaultMessage": "Full", + "description": "AckeeToggle: full option name" + }, "6GySNl": { "defaultMessage": "Copy", "description": "usePrism: copy button text (not clicked)" @@ -111,6 +115,10 @@ "defaultMessage": "Warning: If you want to benefit from all features (search for example), please activate Javascript.", "description": "Layout: noscript message" }, + "7zDlQo": { + "defaultMessage": "Full includes all information from partial as well as information about referrer, operating system, device, browser, screen size and language.", + "description": "AckeeToggle: tooltip message" + }, "92zgdp": { "defaultMessage": "Total:", "description": "Meta: total label" @@ -179,10 +187,6 @@ "defaultMessage": "Blog", "description": "Breadcrumb: blog label" }, - "F1EQX3": { - "defaultMessage": "Ackee tracking (analytics)", - "description": "AckeeSelect: tooltip title" - }, "G+Twgm": { "defaultMessage": "Search", "description": "SearchModal: modal title" @@ -275,18 +279,10 @@ "defaultMessage": "{minutesCount} minutes {secondsCount} seconds", "description": "useReadingTime: minutes + seconds count" }, - "Ogccx6": { - "defaultMessage": "Full includes all information from partial as well as information about referrer, operating system, device, browser, screen size and language.", - "description": "AckeeSelect: tooltip message" - }, "PXp2hv": { "defaultMessage": "{websiteName} | Front-end developer: WordPress/React", "description": "HomePage: SEO - Page title" }, - "PzRpPw": { - "defaultMessage": "Full", - "description": "AckeeSelect: full option name" - }, "Q+1GbT": { "defaultMessage": "Table of contents sidebar", "description": "PageLayout: accessible name for ToC sidebar" @@ -371,6 +367,10 @@ "defaultMessage": "Light theme", "description": "ThemeToggle: light theme label" }, + "ZB/Aw2": { + "defaultMessage": "Partial includes only page url, views and duration.", + "description": "AckeeToggle: tooltip message" + }, "ZIrTee": { "defaultMessage": "Name:", "description": "CommentForm: name label" @@ -431,10 +431,6 @@ "defaultMessage": "Comment form", "description": "CommentForm: aria label" }, - "e/8Kyj": { - "defaultMessage": "Partial", - "description": "AckeeSelect: partial option name" - }, "fN04AJ": { "defaultMessage": "<link>Download the CV in PDF</link>", "description": "CVPage: download CV in PDF text" @@ -515,6 +511,10 @@ "defaultMessage": "Back to top", "description": "BackToTop: link text" }, + "nGss/j": { + "defaultMessage": "Ackee tracking (analytics)", + "description": "AckeeToggle: tooltip title" + }, "npisb3": { "defaultMessage": "Search for a post on {websiteName}.", "description": "SearchPage: SEO - Meta description" @@ -571,14 +571,14 @@ "defaultMessage": "Contact me", "description": "HomePage: contact button text" }, - "skb4W5": { - "defaultMessage": "Partial includes only page url, views and duration.", - "description": "AckeeSelect: tooltip message" - }, "suXOBu": { "defaultMessage": "Theme:", "description": "ThemeToggle: theme label" }, + "tIZYpD": { + "defaultMessage": "Partial", + "description": "AckeeToggle: partial option name" + }, "tLC7bh": { "defaultMessage": "Updated on:", "description": "Meta: update date label" diff --git a/src/i18n/fr.json b/src/i18n/fr.json index a072cfa..3fde110 100644 --- a/src/i18n/fr.json +++ b/src/i18n/fr.json @@ -31,6 +31,10 @@ "defaultMessage": "{commentsCount, plural, =0 {0 commentaire} one {# commentaire} other {# commentaires}}<a11y> à propos de {title}</a11y>", "description": "Meta: comments count" }, + "0gVlI3": { + "defaultMessage": "Suivi :", + "description": "AckeeToggle: select label" + }, "16zl9Z": { "defaultMessage": "Vous êtes ici :", "description": "Breadcrumb: You are here prefix" @@ -63,10 +67,6 @@ "defaultMessage": "Laisser une réponse", "description": "Comment: comment form title" }, - "2pmylc": { - "defaultMessage": "Suivi :", - "description": "AckeeSelect: select label" - }, "310o3F": { "defaultMessage": "Erreur 404 : Page non trouvée - {websiteName}", "description": "404Page: SEO - Page title" @@ -91,6 +91,10 @@ "defaultMessage": "Aucun résultat.", "description": "NoResults: no results" }, + "5eD6y2": { + "defaultMessage": "Complet", + "description": "AckeeToggle: full option name" + }, "6GySNl": { "defaultMessage": "Copier", "description": "usePrism: copy button text (not clicked)" @@ -111,6 +115,10 @@ "defaultMessage": "Attention : Si vous souhaitez bénéficier de toutes les fonctionnalités (la recherche par exemple), veuillez activer Javascript.", "description": "Layout: noscript message" }, + "7zDlQo": { + "defaultMessage": "Complet inclut toutes les informations de Partiel ainsi que des informations à propos du site référent, du système d’exploitation, de l’appareil, du navigateur, de la taille d’écran et de la langue.", + "description": "AckeeToggle: tooltip message" + }, "92zgdp": { "defaultMessage": "Total :", "description": "Meta: total label" @@ -179,10 +187,6 @@ "defaultMessage": "Blog", "description": "Breadcrumb: blog label" }, - "F1EQX3": { - "defaultMessage": "Suivi Ackee (analytique)", - "description": "AckeeSelect: tooltip title" - }, "G+Twgm": { "defaultMessage": "Recherche", "description": "SearchModal: modal title" @@ -275,18 +279,10 @@ "defaultMessage": "{minutesCount} minutes {secondsCount} secondes", "description": "useReadingTime: minutes + seconds count" }, - "Ogccx6": { - "defaultMessage": "Complet inclut toutes les informations de Partiel ainsi que des informations à propos du site référent, du système d’exploitation, de l’appareil, du navigateur, de la taille d’écran et de la langue.", - "description": "AckeeSelect: tooltip message" - }, "PXp2hv": { "defaultMessage": "{websiteName} | Intégrateur web - Développeur WordPress / React", "description": "HomePage: SEO - Page title" }, - "PzRpPw": { - "defaultMessage": "Complet", - "description": "AckeeSelect: full option name" - }, "Q+1GbT": { "defaultMessage": "Barre latérale de la table des matières", "description": "PageLayout: accessible name for ToC sidebar" @@ -371,6 +367,10 @@ "defaultMessage": "Thème clair", "description": "ThemeToggle: light theme label" }, + "ZB/Aw2": { + "defaultMessage": "Partiel inclut seulement l’url de la page, le nombre de visites et la durée.", + "description": "AckeeToggle: tooltip message" + }, "ZIrTee": { "defaultMessage": "Nom :", "description": "CommentForm: name label" @@ -431,10 +431,6 @@ "defaultMessage": "Formulaire des commentaires", "description": "CommentForm: aria label" }, - "e/8Kyj": { - "defaultMessage": "Partiel", - "description": "AckeeSelect: partial option name" - }, "fN04AJ": { "defaultMessage": "<link>Télécharger le CV au format PDF</link>", "description": "CVPage: download CV in PDF text" @@ -500,7 +496,7 @@ "description": "HomePage: link to Linux thematic" }, "jTVIh8": { - "defaultMessage": "Commentaires:", + "defaultMessage": "Commentaires :", "description": "Meta: comments label" }, "kzIYoQ": { @@ -515,6 +511,10 @@ "defaultMessage": "Retour en haut de page", "description": "BackToTop: link text" }, + "nGss/j": { + "defaultMessage": "Suivi Ackee (analytique)", + "description": "AckeeToggle: tooltip title" + }, "npisb3": { "defaultMessage": "Rechercher un article sur {websiteName}.", "description": "SearchPage: SEO - Meta description" @@ -571,14 +571,14 @@ "defaultMessage": "Me contacter", "description": "HomePage: contact button text" }, - "skb4W5": { - "defaultMessage": "Partiel inclut seulement l’url de la page, le nombre de visites et la durée.", - "description": "AckeeSelect: tooltip message" - }, "suXOBu": { "defaultMessage": "Thème :", "description": "ThemeToggle: theme label" }, + "tIZYpD": { + "defaultMessage": "Partiel", + "description": "AckeeToggle: partial option name" + }, "tLC7bh": { "defaultMessage": "Mis à jour le :", "description": "Meta: update date label" |
