feat(a11y): improve accessibility

This commit is contained in:
Stefan Imhoff
2025-02-03 17:13:00 +01:00
parent 602ea79067
commit 872f17b5f6
8 changed files with 18 additions and 5 deletions

View File

@@ -32,6 +32,7 @@ const { entries } = Astro.props;
alt={data.title} alt={data.title}
formats={['avif', 'webp']} formats={['avif', 'webp']}
height="937" height="937"
role="presentation"
src={data.cover} src={data.cover}
width="1500" width="1500"
/> />

View File

@@ -14,6 +14,7 @@ const { project } = Astro.props;
--- ---
<small <small
aria-label="Categories"
class="project-categories dark:text-white/0.2 text-black/0.8 block text-3 leading-4 small-caps md:p-0" class="project-categories dark:text-white/0.2 text-black/0.8 block text-3 leading-4 small-caps md:p-0"
> >
{project.data.categories.join(' / ')} {project.data.categories.join(' / ')}

View File

@@ -19,6 +19,7 @@ const { project } = Astro.props;
) : ( ) : (
<Image <Image
alt={project.data.title} alt={project.data.title}
aria-label={project.data.title}
class="[&_img]:!w-full [&_img]:!max-w-none [&_picture]:!w-full [&_picture]:!max-w-none" class="[&_img]:!w-full [&_img]:!max-w-none [&_picture]:!w-full [&_picture]:!max-w-none"
noMargin noMargin
src={project.data.image.src} src={project.data.image.src}

View File

@@ -5,7 +5,7 @@ import Link from './Link.astro';
import Subsubheadline from './Subsubheadline.astro'; import Subsubheadline from './Subsubheadline.astro';
--- ---
<aside class="grow mbe-5 sm:mbe-0"> <aside class="grow mbe-5 sm:mbe-0" aria-label="Subscribe to RSS">
<Subsubheadline as="h2">Stay up to date.</Subsubheadline> <Subsubheadline as="h2">Stay up to date.</Subsubheadline>
<p> <p>
<Rss aria-hidden="true" className="icon inline h-icon w-icon" />{' '} <Rss aria-hidden="true" className="icon inline h-icon w-icon" />{' '}

View File

@@ -19,7 +19,7 @@ import Link from '../components/Link.astro';
<Mail aria-hidden="true" className="icon h-icon-small w-icon-small" /> <Mail aria-hidden="true" className="icon h-icon-small w-icon-small" />
</Link> </Link>
<Link <Link
aria-label="𝕏" aria-label="Twitter/X"
class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center transition-transform duration-500 ease-in-out hover:scale-125 focus:scale-125" class="flex h-clickarea w-clickarea cursor-pointer items-center justify-center transition-transform duration-500 ease-in-out hover:scale-125 focus:scale-125"
data-umami-event="𝕏" data-umami-event="𝕏"
href="https://x.com/kogakure" href="https://x.com/kogakure"

View File

@@ -37,7 +37,11 @@ const schema = JSON.stringify({
slot="before-content" slot="before-content"
class="col-start-1 col-end-12 md:col-start-3 md:col-end-10 xl:col-start-15 xl:col-end-18 xl:row-start-2 xl:-scale-x-100 3xl:col-start-14 3xl:col-end-17" class="col-start-1 col-end-12 md:col-start-3 md:col-end-10 xl:col-start-15 xl:col-end-18 xl:row-start-2 xl:-scale-x-100 3xl:col-start-14 3xl:col-end-17"
> >
<Image alt="Stefan Imhoff" src="/assets/images/portrait-stefan-imhoff-2025.webp" /> <Image
alt="Stefan Imhoff"
role="presentation"
src="/assets/images/portrait-stefan-imhoff-2025.webp"
/>
</div> </div>
<slot /> <slot />
{ {

View File

@@ -50,7 +50,12 @@ rssPosts.sort(sortMarkdownByDate);
<div <div
class="col-start-1 col-end-19 md:col-start-1 md:col-end-11 xl:col-end-11 [&_div]:!border-x-0 [&_div]:!mbe-0 [&_div]:md:!border-s-0" class="col-start-1 col-end-19 md:col-start-1 md:col-end-11 xl:col-end-11 [&_div]:!border-x-0 [&_div]:!mbe-0 [&_div]:md:!border-s-0"
> >
<Image alt="Bonsai" loading="eager" src="/assets/images/cover/bonsai.webp" /> <Image
alt="Bonsai"
loading="eager"
role="presentation"
src="/assets/images/cover/bonsai.webp"
/>
</div> </div>
<article <article
@@ -82,6 +87,7 @@ rssPosts.sort(sortMarkdownByDate);
<article <article
class="min-[1794px]:[&_li:block col-start-2 col-end-18 grid w-full grid-cols-18 gap-y-gap mbe-12 min-[1097px]:[&_li:nth-child(n+5)]:hidden min-[1410px]:[&_li:nth-child(n+5)]:block min-[1411px]:[&_li:nth-child(n+6)]:hidden min-[1793px]:[&_li:nth-child(n+6)]:block" class="min-[1794px]:[&_li:block col-start-2 col-end-18 grid w-full grid-cols-18 gap-y-gap mbe-12 min-[1097px]:[&_li:nth-child(n+5)]:hidden min-[1410px]:[&_li:nth-child(n+5)]:block min-[1411px]:[&_li:nth-child(n+6)]:hidden min-[1793px]:[&_li:nth-child(n+6)]:block"
data-pagefind-ignore data-pagefind-ignore
aria-label="Latest essays"
> >
<JournalList entries={formattedLatest} /> <JournalList entries={formattedLatest} />
</article> </article>

View File

@@ -34,7 +34,7 @@ const description = 'I am writing essays about various topics in this Journal.';
> >
<Intro components={mapping} /> <Intro components={mapping} />
</article> </article>
<aside class="col-start-1 col-end-18 flex flex-wrap gap-y-3"> <aside aria-label="Filter by tags" class="col-start-1 col-end-18 flex flex-wrap gap-y-3">
{uniqueTags.map((tag) => <Tag href={`/tag/${tag}/`}>{tag}</Tag>)} {uniqueTags.map((tag) => <Tag href={`/tag/${tag}/`}>{tag}</Tag>)}
</aside> </aside>
<nav class="col-start-1 col-end-18" aria-label="Journal"> <nav class="col-start-1 col-end-18" aria-label="Journal">