` 卡片无键盘交互
**修复建议:** 为所有可交互元素添加 `focus-visible:ring-2 focus-visible:ring-tech-blue focus-visible:ring-offset-2`,确保 Tab 键可导航所有交互元素。
---
## 二、高优先级问题 (HIGH)
### 2.1 表单提交按钮无 Loading 状态
**问题描述:** waitlist 表单的提交按钮点击后无 loading 过渡,直接隐藏表单显示成功。ux-guidelines 要求 "Show loading then success/error state"。
```javascript
// waitlist.astro / WaitlistForm.astro — 当前
form?.addEventListener('submit', (e) => {
e.preventDefault();
form.hidden = true;
successMessage.hidden = false;
});
// 问题:无 loading 态、无网络请求失败处理、无防重复提交
```
**修复建议:** 提交后按钮变为 loading spinner → API 调用 → 成功/失败状态。同时禁用按钮防止重复提交。
---
### 2.2 滚动进度条无节流
**问题描述:** `BaseLayout.astro` 中 `scroll` 事件监听器未做节流处理,每次滚动触发 DOM 更新。
```javascript
// BaseLayout.astro L55 — 当前
window.addEventListener('scroll', updateProgress, { passive: true });
```
**修复建议:** 使用 `requestAnimationFrame` 包裹或添加 `throttle(16ms)`。
---
### 2.3 Footer 使用 inline onmouseover/onmouseout
**问题描述:** `Footer.astro` 中超链接使用了内联 JS 事件而非 CSS `:hover` 伪类,违反关注点分离原则。
```html
隐私政策
```
**修复建议:** 使用 Tailwind `hover:text-tech-blue transition-colors` 类替代 inline JS。
---
### 2.4 图片无显式宽高
**问题描述:** `product.astro` 使用 Unsplash 图片未指定 `width`/`height` 属性,导致加载时 Cumulative Layout Shift。
```html

```
**修复建议:** 添加 `width="1200" height="800"` 或使用 Astro Image 组件优化。
---
## 三、中优先级问题 (MEDIUM)
### 3.1 表单样式重复定义
**问题描述:** waitlist 表单样式同时存在于两处:
- `WaitlistForm.astro` — 使用 scoped `