# Source review — เว็บไซต์ตัวอย่างรายวิชา

## ขอบเขต

ตรวจเฉพาะ `inputs.md`, `brief.md`, `index.html`, `style.css`, `main.js` และ `acceptance-notes.md` ในโฟลเดอร์นี้ ไม่ได้เปิด server หรือเบราว์เซอร์ เว็บไซต์นี้เป็นสื่อรายวิชาตัวอย่าง ไม่ใช่ LMS หรือเว็บไซต์มหาวิทยาลัยที่รับรองแล้ว

## สาเหตุที่พบและสิ่งที่เปลี่ยน

พบว่า `style.css` ยังไม่มีการรองรับ `prefers-reduced-motion` โดยตรง ทั้งที่ skip link ซ่อน/แสดงด้วย `transform` จึงเพิ่ม media query ที่ทำให้สถานะ reduced motion ไม่เลื่อน skip link: ซ่อนด้วย `clip-path` และเผยเมื่อ focus โดยไม่มี `transform`.

แก้ไฟล์:

- `style.css` — เพิ่ม reduced-motion fallback สำหรับ skip link
- `acceptance-notes.md` — บันทึกผลการตรวจ CSS ข้อนี้ตามซอร์ส

## ผลการตรวจจากซอร์ส

- ข้อมูลรายวิชา, workshop 2 วัน x 4 ชั่วโมง, และสถานะเว็บไซต์ตัวอย่าง สอดคล้องกับ `inputs.md`/`brief.md`; ไม่พบการอ้างว่าเป็น LMS, เว็บไซต์ทางการ, หรือมี login/รับสมัคร
- บทเรียนครบ 11 บท: Day 1 คือ 00–05 (6 บท) และ Day 2 คือ 06–10 (5 บท); ชื่อและ path ของลิงก์สอดคล้องกับ inventory ที่ให้มา
- `html` เริ่มที่ `data-theme="light"`; `main.js` เปลี่ยน light/dark และอ่าน/เขียน localStorage ใน `try/catch` จึงยังสลับธีมใน session ได้เมื่อ storage ใช้ไม่ได้
- การค้นหาและตัวกรองใช้เงื่อนไขร่วมกัน, แสดง empty state, และปุ่มล้างคืน query/filter เป็นค่าเริ่มต้นแล้ว focus ช่องค้นหา
- no-JS fallback คงรายการบทเรียนและลิงก์ทั้ง 11 บทไว้ใน HTML ขณะที่ controls เริ่มต้นเป็น `hidden`
- มี semantic landmarks, heading ต่อเนื่อง, skip link, native buttons/links/label และ `:focus-visible`; ไม่มี `<img>` จึงไม่มี `alt` ที่ต้องตรวจ; CSS print กำหนดกระดาษขาวและแสดง URL ของลิงก์

## ผลคำสั่ง

- `node --check main.js` — ผ่าน (exit 0; ไม่มี output)
- `rg -c 'data-day="day1"' index.html` — 6 และ `rg -c 'data-day="day2"' index.html` — 5

## Browser checks ที่ยังรอ

ยังไม่ได้เปิดเบราว์เซอร์หรือ local server: การโต้ตอบจริงของ theme/search/filter/reset, live-region announcement, keyboard focus, storage ที่ปิดใช้งาน, responsive/reflow, reduced-motion และ print preview ยังไม่ได้ยืนยันจาก runtime. ไม่ได้อ้างผล contrast หรือ browser pass จากการอ่านโค้ด.
