---
url: https://docs.nemo12.com/architecture/sdd-029-public-site-ia/sitemap-v2.md
description: >-
  Sitemap v2 theo vai, mục tiêu và môn, bảng chuyển hướng, ra mắt hai đợt, trang
  chủ là màn quyết định.
---

# SDD-029 · Sitemap v2: Ai, Mục tiêu, Môn

Một phần của [SDD-029](./index.md). Sitemap v2 theo vai, mục tiêu và môn, bảng chuyển hướng, ra mắt hai đợt, trang chủ là màn quyết định.

## 10. Sitemap v2 — Ai · Mục tiêu · Môn (SRC-746, chỉ đạo 2026-09-16)

Chỉ đạo: **làm lại toàn bộ sitemap**. Trang chủ không bày bản đồ site ra nữa mà hỏi ba câu, và mỗi
câu trả lời đưa người dùng xuống một tầng:

```text
BẠN LÀ AI?      → Học sinh · Bố mẹ
BẠN MUỐN GÌ?    → Vào đại học · Vào cấp 3 · Vào cấp 2
BẠN CẦN HỌC GÌ? → IELTS · SAT · Toán · …          → Subject page
```

Đây là thay đổi ở **trục** của site, không phải ở chữ. Bản v1 (§2) sắp xếp theo *chúng tôi có gì*
— courses, experiences, resources, programs. Bản v2 sắp xếp theo *bạn muốn đạt điều gì*. Hệ quả
trực tiếp: `/students` và `/parents` thôi làm trang mục lục và trở thành **trang chọn mục tiêu**.

### 10.1 Ba mục tiêu viết theo việc-cần-làm

Không đặt tên ba thẻ là "Đại học · Cấp 3 · Cấp 2" — đó là tên của một cái ngăn, không phải điều
người ta muốn. Tên thẻ là câu người dùng tự nói trong đầu:

| | Học sinh | Bố mẹ |
| --- | --- | --- |
| 🎓 `university` | Vào được trường đại học mình muốn | Giúp con vào được trường đại học con muốn |
| 🏫 `high-school` | Vào được trường cấp 3 mình muốn | Giúp con vào được trường cấp 3 con muốn |
| 📚 `middle-school` | Vào được trường mình muốn | Giúp con vào được trường con muốn |

Chữ tiếng Việt là bản người dùng đọc và phải viết theo cách phụ huynh Việt Nam nói, không dịch máy
từ bản tiếng Anh; slug 100% tiếng Anh như mọi nơi khác (SRC-604).

### 10.2 Sitemap

```text
/                                   Cổng chọn vai (§1.1, đã chạy) + dải tăng độ tin cuộn xuống
│
├── /students                       Chọn mục tiêu — 3 thẻ + Octopus đứng riêng
│   ├── /students/university        {sat, ielts, ap, math, english, admissions}
│   ├── /students/high-school       {math, literature, english, physics, chemistry, specialized-school}
│   └── /students/middle-school     {math, vietnamese, english, science, reasoning, selective-school}
│
├── /parents                        Cùng ba mục tiêu, giọng và giao diện của bố mẹ
│   ├── /parents/university/{…}     cùng sáu slug
│   ├── /parents/high-school/{…}
│   └── /parents/middle-school/{…}
│
├── HỌC — một bản duy nhất, KHÔNG nhân đôi theo vai
│   ├── /ielts/…                    142 URL nội dung (§6.3, §7.7) — giữ nguyên
│   ├── /sat/…                      họ trang nội dung + SAT Learner (§7.6)
│   ├── /students/courses/{slug}    21 lớp; /parents/courses là bản nhìn bằng mắt bố mẹ (§2)
│   ├── /students/experiences/{slug}
│   └── /education/…                Methodology — 25 trang (§3.3)
│
├── /octopus                        AI & Future Skills — lối đi thứ tư, xem §10.5
├── /community                      Nemos · Marlins · Dolphins · Orca — xem §10.6
└── /about · /how-it-works · /stories · /privacy
```

### 10.3 Nhân đôi theo vai chỉ ở TẦNG LANDING

Chỉ đạo: `/students/ielts` và `/parents/ielts` là **hai trang thật** — khác
giao diện, khác ngôn ngữ, khác CTA, khác cách bày học phí. Đối tượng khác nhau thì không dùng chung
một bản chữ được.

Nhưng nhân đôi **dừng ở đó**. 142 trang nội dung IELTS bên dưới chỉ có một bản, ở `/ielts/*`:

* Nhân đôi chúng là tạo 142 trang gần trùng. Google chọn hộ một bản và dìm bản kia, và không ai
  chọn được bản nào thắng.
* Mỗi lần sửa một khái niệm phải sửa hai chỗ. Hai chỗ thì sớm muộn lệch nhau, và không cổng nào
  bắt được sự lệch ấy.

Cơ chế này đã chạy sẵn cho khoá học (§2): `/parents/courses` là bản danh mục cho bố mẹ, còn trang
lớp chỉ sống ở `/students/courses/{slug}`. Sitemap v2 mở rộng đúng cơ chế đó, không phát minh mới.

Trang landing của bố mẹ tự khai canonical về chính nó (không trỏ sang bản học sinh): nội dung khác
nhau thật, nên gộp tín hiệu là nói sai với Google về thứ đang có.

#### Hai vai được phép nói KHÁC NHAU về cùng một môn (chốt với chủ dự án 16.09.2026)

Không chỉ khác giọng: được phép khác cả **câu hỏi mở đầu**. Ví dụ đang chạy, ở môn SAT:

> **Ví dụ SAT dùng ở đây đã bị chính chủ dự án đảo lại vài giờ sau (SRC-762, 16.09.2026).** Đoạn
> dưới giữ nguyên nguyên tắc — hai vai được phép khác cả câu hỏi mở đầu — nhưng ví dụ minh hoạ đổi,
> vì ở môn SAT chủ dự án chốt **cả hai vai đều bỏ** câu "có cần SAT không".

| | Bước đầu tiên |
| --- | --- |
| `/students/sat` | **Điểm xuất phát.** Mặc định người học đã quyết thi SAT rồi (SRC-759). |
| `/parents/sat` | **Con đang ở đâu.** Cũng mặc định gia đình đã quyết (SRC-762). |
| `/students/ielts` vs `/parents/…` | Học sinh: *bạn cách band mình cần bao xa*. Bố mẹ: *con đang ở đâu và bao lâu nữa tới đó* — cùng một câu hỏi, hai người hỏi nó vì hai lý do. |

Nguyên tắc vẫn đứng: khác giọng, và được phép khác cả câu hỏi mở đầu khi hai vai thật sự đang ở hai
chỗ khác nhau trên đường ra quyết định. Nhưng **ai ở đâu là việc của chủ dự án nói, không phải việc
suy ra từ vai**. Ở SAT, suy luận "bố mẹ chưa quyết nên phải hỏi lại" nghe rất hợp lý và đã sai: chủ
dự án chốt rằng gia đình tìm tới trang SAT thì đã quyết rồi, cả hai người, và hỏi lại là bắt họ trả
tiền bằng một màn hình cho một quyết định đã xong.

**Vẫn đừng "đồng bộ" hai trang cho giống nhau.** Hai vai SAT nay cùng bỏ một ý, nhưng chúng vẫn nói
hai chuyện khác nhau: học sinh đọc "bạn đang ở đâu và ôn thế nào", bố mẹ đọc "nhìn vào đâu để biết
con có đang tiến". Giống nhau về chữ mới là hỏng, vì lúc ấy một trong hai vai đang đọc câu trả lời
viết cho người khác.

| | `/students/…/ielts` | `/parents/…/ielts` |
| --- | --- | --- |
| H1 | Bạn cần IELTS bao nhiêu, và đang cách nó bao xa? | Con bạn đang ở đâu trên đường tới IELTS? |
| CTA chính | Đo thử trong 15 phút | Xem chương trình IELTS |
| CTA phụ | Xem lộ trình | Đặt lịch nói chuyện |
| Học phí | cuối trang, gọn | giữa trang, có bảng mức đồng hành (§7.7) |

### 10.4 Chẩn đoán là CTA của trang môn, không phải một nấc điều hướng

Kiến trúc học tập là Learner → Goal → **Diagnosis** → Learning Plan → Package → Subject, nên chỗ
đúng của Diagnosis trông như nằm TRƯỚC trang môn. Chỉ đạo đi ngược lại, và đúng: đó là bước đầu của
*việc học*, không phải bước đầu của *việc tìm hiểu*. Người lạ chưa tin Nemo12 mà đã bị bắt làm bài
đo thì thoát. Mini-card đi thẳng vào trang môn; **Diagnosis là nút chính trên trang đó**.

### 10.5 Mục tiêu thắng tên trường (phương án (a))

Trước SRC-746 có hai bản đồ cho cùng một vùng đất: năm trường 🐢 Turtle · 🦈 Shark · 🦑 Squid ·
🐙 Octopus · 🐋 Whale đang nói đúng thứ mà ba thẻ mục tiêu sắp nói — Squid *là* "vào đại học bằng
IELTS/SAT", Shark *là* "thi chuyên". Để cả hai thì một người bấm "Vào đại học" và một người bấm
"Squid" đến hai trang khác nhau nói cùng một chuyện, và không ai giải thích được khác nhau ở đâu.

Chốt: **mục tiêu là đường đi, tên trường là cái nhãn.**

* Điều hướng chính chỉ có ba thẻ mục tiêu.
* Năm URL `/turtle` … `/whale` **giữ nguyên** làm trang thương hiệu — chúng đã nằm trên Google — và
  thôi làm cửa vào chính.
* Tên trường xuất hiện *bên trong* trang môn như một nhãn gói học: "Lớp này thuộc Squid".

Phương án ngược (lấy năm con vật làm Step 2) bị loại vì nó bắt người lạ học nghĩa của một cái tên
trước khi dùng được site — đúng thứ mà "bắt đầu bằng bạn muốn đạt điều gì" sinh ra để tránh.

**Octopus là ngoại lệ có chủ ý.** AI & Future Skills không phải một kỳ thi vào trường, nên nhét nó
vào một trong ba mục tiêu là nói sai về nó. Nó đứng riêng, là lối đi thứ tư bên cạnh ba thẻ, không
nằm trong chúng. 🐋 Whale (Du học) thì ngược lại: nó nhập vào `university/admissions` vì du học
đúng là một cách vào đại học.

### 10.6 Cộng đồng và các trang còn lại

`/community` là nhà chung, và **trỏ ra chứ không chứa**: Marlins đã có `marlins.nemo12.com`,
Dolphins đã có trang `/mentors`. Orca (thi thố bên ngoài) chưa có nội dung riêng nên chưa vào
sitemap — đưa một URL rỗng lên sitemap là tự hạ chất lượng tên miền.

**Không có `/pricing` công khai** (chỉ đạo): học phí sống trong từng trang môn, cạnh thứ nó định
giá. Bảng giá đứng một mình buộc người đọc so tiền trước khi hiểu mình mua gì.

### 10.7 Bảng chuyển hướng

266 URL đang nằm trong `sitemap.xml` (124 trang chính · 140 IELTS · 2 SAT). Luật, không phải 266
dòng:

| Nhóm | URL | Xử lý |
| --- | --- | --- |
| `/ielts/*` · `/sat/*` | 142 | **Giữ nguyên tuyệt đối** — tài sản SEO lớn nhất |
| `/students/courses/*` · `/students/experiences/*` · `/education/*` | ~55 | Giữ URL, đổi chỗ đứng trong điều hướng |
| `/parents/how-to-help/*` | 7 | Giữ — đây là cửa vào từ Google của bố mẹ; gán thêm mỗi trang về một mục tiêu |
| `/students` · `/parents` | 2 | **Viết lại thành trang chọn mục tiêu, không đổi URL** |
| `/for-students` · `/for-parents` | 2 | 301 → `/students` · `/parents` |
| 6 slug tiếng Việt (`cho-bo-me`, `truong-chuyen`…) | 6 | Bí danh đã có (§4), giữ tiếp — link quảng cáo cũ vẫn sống |
| `/specialist-schools/*` | ~10 | **Giữ nguyên, nối hai chiều với trang môn** (xem ghi chú dưới bảng) |
| `/turtle` … `/whale` | 5 | Giữ làm trang thương hiệu (§10.5) |
| Trang mới | **42** | 6 trang mục tiêu + 36 trang môn |

#### `/specialist-schools` không bị chuyển hướng (sửa lại sau đợt 2, chốt với chủ dự án 2026-09-16)

Bảng này bản đầu ghi 301 sang `/students/high-school/specialized-school`. **Sai, và đã bỏ.**

`/specialist-schools` mang dữ liệu thật của từng trường: lớp chuyên, thành tích theo năm, cựu học
sinh, và công cụ đặt 2-4 trường cạnh nhau (SDD-020 §6). Chuyển hướng cả cụm đó vào một trang môn là
vứt phần nội dung ấy đi để đổi lấy một dòng gọn trong bảng chuyển hướng.

Hai bên trả lời hai câu khác nhau, và cả hai đều cần tồn tại:

| | Câu nó trả lời |
| --- | --- |
| `/specialist-schools` | **Trường nào?** Trường này có lớp chuyên gì, mạnh ở đâu, so với trường kia ra sao. |
| `/{vai}/high-school/specialized-school` | **Ôn thế nào?** Đề chuyên khác đề thường ở đâu, con có hợp không, bắt đầu từ đâu. |

Nên chúng **nối vào nhau thay vì thay thế nhau**: trang môn trỏ sang danh sách trường (có từ đợt
1\), và `/specialist-schools` có một dải trỏ ngược lại trang môn theo đúng vai đang xem.

Luật rút ra cho lần sau: **chỉ 301 khi trang cũ không còn nội dung riêng.** Nếu nó vẫn trả lời một
câu mà trang mới không trả lời, thứ cần làm là một cái link, không phải một cú chuyển hướng.

**Số nhiều `/students` `/parents`, không phải số ít.** Bản đề xuất viết `/student`. Đổi sang số ít
là chuyển hướng 124 URL đang sống và đang có thứ hạng để bớt một chữ cái — mất thật, được không gì.

### 10.8 Ra mắt hai đợt, không dựng 42 trang cùng lúc

* **Đợt 1** — 2 trang chọn mục tiêu (`/students`, `/parents` viết lại) + 6 trang mục tiêu + 4 trang
  môn IELTS/SAT làm sâu.
* **Đợt 2** — 32 trang môn còn lại theo một khuôn chung, nội dung sơ bộ, đào sâu dần.

Đẩy 42 trang mỏng lên Google cùng lúc hạ chất lượng cả tên miền, không chỉ 42 trang đó. Chỉ đạo
cũng đã nói: làm sơ bộ trước, đào sâu IELTS trước.

#### Đợt 2 dừng ở chín môn, và vì sao bảy môn còn lại chưa dựng

Đối chiếu 16 môn của đợt 2 với **lớp thật đang chạy** (21 lớp trong `students.ts`) cho ra hai nhóm:

| Có lớp đứng sau (đã dựng, 18 trang) | Chưa có lớp nào (chưa dựng) |
| --- | --- |
| Toán ×3 bậc → Mathematics · Problem Solving · AoPS | Ngữ văn · Vật lý · Hoá học |
| Tiếng Anh ×3 bậc → 12 lớp IELTS | Tiếng Việt · Khoa học |
| Thi chuyên · Thi trường chọn → lớp Chuyên | Du học / Admissions · AP |
| Tư duy & Logic → Problem Solving · AoPS | |

**Một trang môn là một lời hứa.** Dựng trang cho môn không có ai dạy thì người bấm vào sẽ phát hiện
ra, và họ phát hiện đúng vào lúc đang định tin. Cái mất không phải một lượt truy cập mà là lý do để
tin những trang còn lại.

AP nằm trong nhóm chưa dựng vì một quyết định đã có từ trước: toàn bộ khu AP gỡ khỏi site ngày
2026-09-15 với đúng lý do này (§7.6). Bật lại một lối vào AP là lật quyết định ấy, và việc đó cần
chủ dự án quyết chứ không phải một phiên tự làm.

Bảy môn này vẫn **hiện trên trang mục tiêu kèm nhãn "Sắp mở"** và không có route — người đọc thấy
Nemo12 định đi tới đâu, mà không ai bị hứa hẹn thứ chưa có.

### 10.9 Nhớ vai và mục tiêu

`nemo12.role` đã có (§1.1, `localStorage`). SRC-746 thêm `nemo12.goal` bên cạnh, cùng lý do và cùng
cách nuốt lỗi khi trình duyệt chặn lưu trữ.

Một giới hạn phải biết trước khi dùng: trang phục vụ từ CDN là **bản tĩnh prerender**, chung cho mọi
người (§5). Cá nhân hoá theo `localStorage` chỉ xảy ra sau khi JavaScript chạy. Nên mục tiêu đã nhớ
được phép đổi **đường tắt** (link "tiếp tục", thứ tự thẻ) và không được phép đổi **nội dung chính** —
đổi nội dung chính là vừa chớp giao diện trước mắt người dùng, vừa cho bot thấy một trang khác với
người.

## Lịch sử quyết định

#### 10.10 Trang chủ là MÀN QUYẾT ĐỊNH, không phải trang giới thiệu (chỉ đạo 2026-09-16, vòng hai)

Chỉ đạo: *bỏ hết menu, bỏ hết chân trang, bỏ hết các khối nội dung khác. Người vào chỉ chọn được
vai và một trong các thẻ, rồi bấm một nút mới đi tiếp.*

> **Ngoại lệ duy nhất (SRC-1240, chỉ đạo 05.10.2026):** đáy màn có một hàng icon kênh mạng xã hội
> (Facebook, LinkedIn, YouTube, Substack, X, Threads), đọc từ `socialLinks.ts`. Chỉ icon, không chữ,
> không link nào khác đi kèm; nó không phải chân trang và không mở đường cho chân trang quay lại.

```text
BẠN LÀ AI?                 Bố mẹ · Học sinh
BẠN MUỐN ĐẠT ĐƯỢC GÌ?      Vào đại học · Vào cấp 3 · Vào cấp 2 · AI & Future Skills
[ Vào Nemo12 ]
```

Khác bản §1.1 ở hai chỗ, và cả hai đều có giá:

**Hỏi hai câu thay vì một.** Bản cũ hỏi vai rồi thả người dùng vào một trang mục lục. Bản này hỏi
trọn bộ ngay, nên người tới trang trong đã biết mình đang ở đâu và vì sao.

**Chọn xong mới đi, thay vì bấm phát nào đi luôn phát ấy.** Người dùng nhìn thấy cả hai lựa chọn
của mình trước khi rời trang, và sửa lại được. Cái giá là thêm một cú bấm; đổi lại là không ai đi
lạc vì bấm nhầm. Nút khoá cho tới khi trả lời xong cả hai câu, và nói rõ **còn thiếu câu nào** —
một nút mờ đi không giải thích là một ngõ cụt im lặng.

**Chữ đổi theo vai ngay khi bấm chọn** (chỉ đạo vòng ba). Chọn "bố mẹ" thì ba thẻ đổi thành "Giúp
con vào được...", câu hỏi đổi thành "Bạn muốn CON đạt được điều gì?", và `href` của thẻ trỏ sang
`/parents/...`. Chưa chọn vai thì hiện bản học sinh: phải có một bản nào đó ngay từ lần vẽ đầu, và
đó cũng là bản nằm trong HTML tĩnh mà bot đọc. Đo lại sau khi đổi: chữ của bố mẹ dài hơn nhưng màn
vẫn vừa một khung 375×812.

**`/` KHÔNG chuyển hướng đi đâu cả** (chỉ đạo vòng bốn, 2026-09-16). Kể cả khi đã nhớ vai và mục
tiêu, trang chủ vẫn vẽ ra màn quyết định.

Điều này **đè lên luật ở §1.1** ("đã chọn rồi thì đừng hỏi lại"). Luật ấy đúng khi trang chủ chỉ là
một cái cổng phải vượt qua, nhưng màn quyết định bây giờ là một trang có việc của nó: người ta quay
lại đây để **đổi hướng**, và một trang tự đẩy người dùng đi thì không đổi được gì. Địa chỉ gốc của
một trang web phải mở ra được.

Lựa chọn cũ không mất: màn quyết định đọc `localStorage` và **chọn sẵn** cả hai câu, nên người quay
lại về đúng chỗ cũ bằng đúng một cú bấm. Đó là cái giá của việc bỏ chuyển hướng, và nó rẻ hơn hẳn
cái giá của việc không vào nổi trang chủ của chính mình.

Bản trước (cùng ngày) có chuyển hướng khi đủ cả hai câu. Đã gỡ.

##### Dải link cuối trang gỡ đi mà không mất đường cho bot

§1.1 từng thêm một dải link ở đáy cổng vì bản chỉ-có-`<button>` đo được **0 thẻ `h1` và đúng MỘT
link** trong DOM: trang mạnh nhất của tên miền không dẫn con bò tìm kiếm đi đâu cả (SRC-694).

Chỉ đạo "bỏ hết" gỡ dải link ấy. Nó gỡ được **vì năm thẻ ở giữa màn đã là năm link thật**: mỗi thẻ
mang `href` trỏ đúng chỗ mà nút "Vào Nemo12" sẽ đưa tới. Bấm chuột trái thì chặn lại để chọn;
Ctrl/Cmd-click vẫn mở thẳng trang đó. `h1` chỉ-đọc-bằng-trình-đọc-màn-hình giữ nguyên.

Không có link nào giấu đi. Thứ bot thấy đúng bằng thứ người dùng thấy — một dải link vô hình dựng
riêng cho máy tìm kiếm là chuyện khác hẳn, và không làm.

##### Màn quyết định phải vừa đúng một màn hình

Đo trên máy thật, hai lần phải sửa:

| Khung | Trước | Sau |
| --- | --- | --- |
| 800×768 | cao 806px, thanh cookie che 27px cuối của nút | cao 802px, nút cách thanh cookie 37px |
| 375×812 | cao 1138px, câu hỏi thứ hai nằm dưới mép màn | cao 812px, không cuộn |

Hai điều rút ra và đừng quên khi sửa lại khoảng cách ở đây:

* **Đệm đáy không chữa được.** Trang đã cao hơn màn hình thì thêm `padding-bottom` chỉ kéo dài tài
  liệu, không đẩy nút lên. Thứ phải làm là bóp nội dung lại cho vừa.
* **Trên điện thoại thẻ nằm NGANG** (hình bên trái, chữ bên phải), từ `sm` trở lên mới xếp dọc.
  Phần chiều cao mà hình linh vật chiếm khi nó đứng trên chữ chính là phần lớn chỗ thừa: bỏ nó đi
  là 1138px xuống 864px, phần còn lại do khoảng cách.

Thanh cookie vẫn ở lại: nó không phải điều hướng, và nó là nghĩa vụ chứ không phải lựa chọn bố cục.

#### 10.11 Vào trong thì thanh điều hướng và chân trang đổi theo khu

Chỉ đạo cùng ngày: *vào các trang bên trong thì NavBar và Footer đều thay đổi toàn bộ theo đúng
trang đó.* Cơ chế đã có sẵn từ SRC-722/723 cho IELTS và SAT (`CONTEXT_MENUS` khớp theo tiền tố);
SRC-746 mở rộng nó cho **sáu khu mục tiêu** (ba mục tiêu × hai vai).

Sáu khu này được **SINH RA từ `GOALS`**, không gõ tay: sáu bộ mục gần giống nhau viết tay là sáu
chỗ để lệch, và lệch ở đây không có dấu hiệu nào — thanh vẫn hiện, chỉ là hiện sai khu.

Thanh của một khu mục tiêu có hai loại mục, thứ tự có lý do:

1. **Các môn ĐÃ dựng của chính mục tiêu này** — việc người đọc đang làm.
2. **Hai mục tiêu còn lại của cùng vai** — lối rẽ khi họ vào nhầm đường.

Môn chưa dựng **không lên thanh**: một mục bấm vào ra 404 tệ hơn hẳn một mục không có. Nên khu
"Vào cấp 3" hiện chỉ có hai mục, và đó là bản đồ đúng của thứ đang có, không phải một thanh thiếu.

##### Nhãn khu thành menu đổi khu, và luật ai được lên thanh (chỉ đạo vòng sáu, 16.09.2026)

Ba chỉnh, cùng phục vụ một ý: **thứ nổi bật nhất trên thanh phải là TÊN TRANG đang xem.**

1. **Nhãn khu ("Vào đại học") thành menu thả xuống** chứa ba mục tiêu của cùng vai. Đứng ở "Vào
   đại học" thì "Vào cấp 3" và "Vào cấp 2" là hai lối rẽ, không phải hai trang ngang hàng với các
   môn. Bản trước xếp chúng chung hàng với IELTS · SAT · Toán, nên thanh trộn hai loại thứ khác
   hẳn nhau: **nơi đang đứng** và **những trang trong nơi ấy**.
2. **Nhãn ấy cố tình MỜ** (viền mảnh, chữ thường, không màu nhấn). Bản trước tô nó bằng màu nhấn
   nên trên thanh có hai thứ cùng đòi sự chú ý, và tên trang thua.
3. **Thanh chỉ mang các KỲ THI**, không mang môn phổ thông. Toán và Tiếng Anh khai `nav: false`:
   chúng vẫn có trang riêng và vẫn nằm trong lưới mini-card của trang mục tiêu, chỉ không chiếm
   chỗ trên thanh. AP khai `nav: "disabled"`: **hiện nhưng không bấm được**, để nói Nemo12 định đi
   tới đâu mà không hứa một trang chưa tồn tại.

Menu đóng khi bấm ra ngoài hoặc bấm Esc, không chỉ khi bấm lại đúng cái nút vừa mở. Nó là `<nav>`
chứa link, không phải `role="menu"`: gán sai vai trò làm trình đọc màn hình hứa những phím mà một
danh sách link không có.

Menu mobile **bỏ** mục `disabled`: chỗ hẹp, và một dòng bấm vào không phản ứng gì thì người dùng
tưởng máy treo chứ không hiểu là "sắp có".

**Trang đang xem luôn có mặt trên thanh** (chỉ đạo vòng bảy). Bản trước để `/students/university/
english` không có mục nào sáng, vì Tiếng Anh khai `nav: false`; người đọc mất dấu vị trí. Nay khi
trang hiện tại vắng mặt, nó được chèn vào **đầu** thanh.

Điều này KHÔNG mâu thuẫn với luật `nav: false`: thanh vẫn không **liệt kê** Toán và Tiếng Anh, chỉ
là khi bạn đang đứng trong một môn thì nó nói ra điều đó. Nhãn lấy từ `crumb` của bảng route, đúng
trường sinh ra cho việc này: một danh từ ngắn nói trang thuộc ngăn nào, khác `h1` vốn được phép là
cả một câu hỏi.

Chèn theo TIỀN TỐ nên không nhân đôi: `/students/ielts` đã có mục IELTS thì không thêm
gì, và `/parents/how-to-help/cant-focus` vẫn chỉ thấy bốn mục của vai. Trang không nằm trong bảng
route (ví dụ `/stories/<slug>` lấy slug từ D1) thì không chèn gì cả.

Chân trang của khu thay cột đầu bằng: tên mục tiêu đang xem, một câu nói khu này dành cho ai, các
môn đã dựng, hai mục tiêu còn lại, và Octopus. Logo về trang gốc của chính khu ấy, kèm nhãn phụ
(`Vào đại học`) để lối về không thành một cú nhảy bất ngờ.
