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:
@@ -1,7 +1,13 @@
|
||||
import React from "react";
|
||||
import type { Metadata } from "next";
|
||||
import { activeMembers, alumni } from "../../content/members";
|
||||
import { ProfessorDetailsDialog } from "./_components/ProfessorDetailsDialog";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Members",
|
||||
description: "AI Agent Networking Lab (ANL) professor, active researchers, and alumni directory",
|
||||
};
|
||||
|
||||
const DEGREE_LABEL: Record<string, string> = {
|
||||
Professor: "Professor",
|
||||
PhD: "Ph. D.",
|
||||
@@ -24,16 +30,16 @@ export default function MembersPage() {
|
||||
);
|
||||
|
||||
return (
|
||||
<div className="container-content py-8 sm:py-12 space-y-12 sm:space-y-16">
|
||||
<div className="container-content py-8 sm:py-12 space-y-10 sm:space-y-14">
|
||||
{/* Page Header */}
|
||||
<section>
|
||||
<h1 className="font-serif text-4xl sm:text-5xl font-normal text-ink">
|
||||
<h1 className="font-serif text-4xl sm:text-5xl font-normal text-ink tracking-tight">
|
||||
LAB MEMBERS
|
||||
</h1>
|
||||
</section>
|
||||
|
||||
{/* Professor Section */}
|
||||
<section className="space-y-6 pt-6 md:pt-10 border-t border-line">
|
||||
<section className="space-y-6 pt-6 md:pt-8 border-t border-line">
|
||||
<div className="bg-paper p-8 rounded-lg border border-line grid grid-cols-1 lg:grid-cols-12 gap-8 items-center">
|
||||
<div className="lg:col-span-8 space-y-4">
|
||||
<h2 className="font-serif text-3xl font-normal text-ink">
|
||||
@@ -77,10 +83,10 @@ export default function MembersPage() {
|
||||
</section>
|
||||
|
||||
{/* Active Researchers Section */}
|
||||
<section className="space-y-8 pt-6 md:pt-10 border-t border-line">
|
||||
<section className="space-y-8 pt-6 md:pt-8 border-t border-line">
|
||||
<div className="flex justify-between items-end">
|
||||
<div>
|
||||
<h2 className="font-serif text-3xl font-normal text-cobalt-dark">
|
||||
<h2 className="font-serif text-2xl sm:text-3xl font-normal text-cobalt-dark">
|
||||
Active Researchers
|
||||
</h2>
|
||||
</div>
|
||||
@@ -148,10 +154,10 @@ export default function MembersPage() {
|
||||
</section>
|
||||
|
||||
{/* Alumni Section (Native <details>/<summary> progressive disclosure) */}
|
||||
<section className="space-y-6 pt-6 md:pt-10 border-t border-line">
|
||||
<section className="space-y-6 pt-6 md:pt-8 border-t border-line">
|
||||
<div className="flex justify-between items-end">
|
||||
<div>
|
||||
<h2 className="font-serif text-3xl font-normal text-ink">
|
||||
<h2 className="font-serif text-2xl sm:text-3xl font-normal text-ink">
|
||||
Graduates
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user