From 57c123bbe4bbfd9295fd66926242cd4ef6d3ad89 Mon Sep 17 00:00:00 2001 From: Adel SIDI AHMED Date: Fri, 22 Dec 2023 12:18:17 +0100 Subject: [PATCH] feat(accessibility): added accessibility attributes Co-authored-by: Adel SIDI AHMED Co-authored-by: Nicolas Froidure --- src/app/[id]/page.tsx | 4 +- src/app/conferences/[id]/page.tsx | 4 +- src/app/conferences/entries.tsx | 15 ++++-- src/app/credits/page.tsx | 16 +++++- src/app/membres/page.tsx | 16 +++++- src/app/page.tsx | 51 +++++++++++++++---- src/app/planete/page.tsx | 17 +++++-- src/components/a.tsx | 72 ++++++++++----------------- src/components/anchored.tsx | 13 ++--- src/components/footer.tsx | 28 +++++------ src/components/gallery.tsx | 16 +++--- src/components/header.tsx | 18 +++---- src/components/menu.tsx | 82 ++++++++++++++----------------- src/components/social.tsx | 4 +- src/components/tootList.tsx | 26 +++++----- 15 files changed, 217 insertions(+), 165 deletions(-) diff --git a/src/app/[id]/page.tsx b/src/app/[id]/page.tsx index 1a88094a..b0d5555b 100644 --- a/src/app/[id]/page.tsx +++ b/src/app/[id]/page.tsx @@ -60,7 +60,9 @@ export default async function Page({ params }: { params: Params }) { {renderMarkdown({ index: 0 }, entry.content)}
- Retour + + Retour + ); diff --git a/src/app/conferences/[id]/page.tsx b/src/app/conferences/[id]/page.tsx index cb8271f0..3de84901 100644 --- a/src/app/conferences/[id]/page.tsx +++ b/src/app/conferences/[id]/page.tsx @@ -52,7 +52,9 @@ export default async function BlogPost({ params }: { params: Params }) {
- Retour + + Retour + ); diff --git a/src/app/conferences/entries.tsx b/src/app/conferences/entries.tsx index 1b745388..2a44c9c6 100644 --- a/src/app/conferences/entries.tsx +++ b/src/app/conferences/entries.tsx @@ -119,7 +119,10 @@ export const Entries = ({ entries, page, pagesCount }: EntriesProps) => {
{entry.illustration ? ( - + {entry.illustration.alt} { ) : null} - {entry.title} + + {entry.title} + {entry.description} - Lire la suite + + Lire la suite +
))} @@ -147,6 +154,7 @@ export const Entries = ({ entries, page, pagesCount }: EntriesProps) => { page > 2 ? `/conferences/pages/${page - 1}` : '/conferences' } rel="previous" + title="Voir la page précédente" > Précédent @@ -157,6 +165,7 @@ export const Entries = ({ entries, page, pagesCount }: EntriesProps) => { iconPosition="last" href={`/conferences/pages/${page + 1}`} rel="next" + title="Voir la page suivante" > Suivant diff --git a/src/app/credits/page.tsx b/src/app/credits/page.tsx index 1522d885..28fea84a 100644 --- a/src/app/credits/page.tsx +++ b/src/app/credits/page.tsx @@ -77,7 +77,10 @@ export default async function Page() {
{`Avatar - + {entry.name} alias {entry.login} @@ -95,6 +98,7 @@ export default async function Page() { (entry.blog.startsWith('http') ? '' : 'https://') + entry.blog } + title={`Se rendre sur le blog de ${entry.name}`} > 📰Blog {' '} @@ -104,12 +108,20 @@ export default async function Page() { <> 📲Twitter {' '} ) : null} - {💻GitHub} + { + + 💻GitHub + + }
))} diff --git a/src/app/membres/page.tsx b/src/app/membres/page.tsx index 2a429061..d8f18e6b 100644 --- a/src/app/membres/page.tsx +++ b/src/app/membres/page.tsx @@ -63,7 +63,10 @@ export default async function Page() {
{`Avatar - + {entry.name} alias {entry.login} @@ -76,6 +79,7 @@ export default async function Page() { (entry.blog.startsWith('http') ? '' : 'https://') + entry.blog } + title={`Se rendre sur le blog de ${entry.name}`} > 📰Blog {' '} @@ -85,12 +89,20 @@ export default async function Page() { <> 📲Twitter {' '} ) : null} - {💻GitHub} + { + + 💻GitHub + + }
))} diff --git a/src/app/page.tsx b/src/app/page.tsx index f7101e8b..bdf67586 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -77,21 +77,33 @@ export default async function Page() { Le{' '} - + groupe Meetup de FranceJS {' '} ; Le{' '} - + groupe Google {' '} de ChtiJS (plus axé proposition de conférences et préparatifs) ; Le compte{' '} - Twitter de ChtiJS ; + + Twitter de ChtiJS + {' '} + ; Concept @@ -116,28 +128,47 @@ export default async function Page() { Signalez vous sur Twitter auprès de{' '} - @chtijs, ou inscrivez - vous sur la{' '} - + + @chtijs + + , ou inscrivez vous sur la{' '} + liste de diffusion {' '} et rejoignez nous sur{' '} - slack. + + slack + + . Site web Notre site web est aussi ouvert aux contributions, contenus comme code. Il vous suffit de faire un pull request sur{' '} - + le dépôt GitHub . Vous pouvez retrouver les contributeurs du site{' '} - sur cette page. + + sur cette page + + . FranceJS ChtiJS fait partie de{' '} - l'initiative FranceJS{' '} + + l'initiative FranceJS + {' '} qui fédère les acteurs de JavaScript afin de promouvoir ce langage et de faciliter son développement en France. diff --git a/src/app/planete/page.tsx b/src/app/planete/page.tsx index 9ca1a18a..62ece0ec 100644 --- a/src/app/planete/page.tsx +++ b/src/app/planete/page.tsx @@ -87,7 +87,10 @@ export default async function Page() { {entries.map((entry) => (
- + {entry.entry.title} @@ -104,14 +107,22 @@ export default async function Page() { )}{' '} par{' '} - + {entry.blog.author} - Lire ➤ + + Lire ➤ +
))} diff --git a/src/components/a.tsx b/src/components/a.tsx index f562eb69..efa821f9 100644 --- a/src/components/a.tsx +++ b/src/components/a.tsx @@ -1,69 +1,51 @@ import Link from 'next/link'; import styles from './a.module.scss'; -import type { LinkProps } from 'next/link'; +import { type ComponentProps } from 'react'; -const Anchor = ({ +export default function Anchor({ children, href, - as, - replace, - scroll, - shallow, - passHref, - prefetch, - locale, className, icon, iconPosition = 'first', ...props }: { - children: React.ReactNode; -} & LinkProps & { - icon?: string; - iconPosition?: 'first' | 'last'; - } & Exclude, 'href'>) => { + title: string; + icon?: string; + iconPosition?: 'first' | 'last'; +} & Omit, 'target'>) { const isURLLink = - href.length > 30 && + href.toString().length > 30 && children instanceof Array && typeof children[0] === 'string' && href === children[0]; return ( - - {icon ? : null} - {isURLLink + className={[ + styles.root, + ...(className ? [className] : []), + ...(icon ? [ - href.replace(/(http|ftp)s?:\/\//, '').slice(0, 15) + - '…' + - href.slice(-5), + styles.withIcon, + iconPosition === 'first' ? styles.first : styles.last, ] - : children} - + : []), + ].join(' ')} + {...props} + target={href.toString().startsWith('http') ? '_blank' : '_self'} + > + {icon ?