feat(web): polish responsive accessible interface

This commit is contained in:
Wenxin Duan
2026-09-08 10:23:15 +08:00
parent 36b6cbac3e
commit c4a88e4aae
7 changed files with 80 additions and 11 deletions
+19
View File
@@ -0,0 +1,19 @@
import { render, screen } from "@testing-library/react";
import { describe, expect, it, vi } from "vitest";
import { CompletionAnnouncer } from "../src/components/common/CompletionAnnouncer.js";
import { TopBar } from "../src/components/topbar/TopBar.js";
describe("accessibility contracts", () => {
it("gives icon-only actions accessible names", () => {
render(<TopBar sessionId="ses_1" connection="open" modelLabel="gpt-test" supportsImages onOpenSettings={vi.fn()} onReset={vi.fn()} />);
expect(screen.getByRole("button", { name: "打开模型设置" })).toBeVisible();
expect(screen.getByRole("button", { name: "重置训练会话" })).toBeVisible();
});
it("announces completion but not every streaming token", () => {
const { rerender } = render(<CompletionAnnouncer status="running" />);
expect(screen.getByRole("status")).toBeEmptyDOMElement();
rerender(<CompletionAnnouncer status="complete" />);
expect(screen.getByRole("status")).toHaveTextContent("回答已完成");
});
});