refactor(pages,a11y,seo): enhance subpage metadata, semantic HTML, accessibility, and E2E regression tests

- Standardize Next.js Metadata and dynamic generateMetadata across all subpages
- Fix duplicate main landmark in publications page by replacing nested main with div
- Unify Members page spacing (space-y-10 sm:space-y-14, pt-6 md:pt-8) and responsive H2s
- Add aria-label and focus ring to CategoryNav View All links for a11y
- Derive dynamic course history semester ranges in Lectures page
- Add 3 comprehensive E2E test cases (test_08, test_09, test_10) for highlights, active border, CITE brand links, and English H1 headers
This commit is contained in:
2026-08-24 16:10:11 +09:00
parent b1640cdac4
commit f34e9bad57
7 changed files with 102 additions and 16 deletions
+10 -1
View File
@@ -1,10 +1,19 @@
import React from "react";
import type { Metadata } from "next";
import { semesters } from "../../content/lectures";
export const metadata: Metadata = {
title: "Lectures",
description: "AI Agent Networking Lab (ANL) lecture courses and curriculum history",
};
export default function LecturesPage() {
const recentSemesters = semesters.slice(0, 3);
const olderSemesters = semesters.slice(3);
const oldestSem = olderSemesters[olderSemesters.length - 1];
const newestOlderSem = olderSemesters[0];
return (
<div className="container-content py-8 sm:py-12 space-y-10 sm:space-y-14">
{/* Page Header */}
@@ -73,7 +82,7 @@ export default function LecturesPage() {
Browse all semesters
</span>
<p className="text-xs text-ink-mute font-mono">
Course history from 2016 Fall to 2024 Spring
Course history from {oldestSem ? `${oldestSem.year} ${oldestSem.term}` : "2004 Spring"} to {newestOlderSem ? `${newestOlderSem.year} ${newestOlderSem.term}` : "2024 Fall"} ({olderSemesters.length} Semesters)
</p>
</div>
<span className="font-mono text-xs text-vermillion-dark font-bold border border-vermillion-dark px-3.5 py-1.5 rounded group-open:bg-vermillion-dark group-open:text-white dark:group-open:text-ivory transition-colors">