Instructor only · Unlisted
Senior answer key
All planted bugs across the 10 senior practice pages.
← Senior hub · Learning
Practice 01 · Accessibility (open)
- No visible labels — placeholder only
- Button white on #ccc — 1.6:1 contrast fail
- Hint text #888 — borderline contrast fail
- outline:none with no focus-visible replacement
- Checkbox label is span not label[for]
- Footer link #bbb on white — 1.9:1 fail
Practice 02 · Responsive layout (open)
- Fixed 250px sidebar no responsive breakpoint
- Table white-space:nowrap overflows mobile
- Opening hours paragraph white-space:nowrap
- Contact bar items white-space:nowrap
- Contact flex row no flex-wrap
Practice 03 · Browser quirks (open)
- Number spinner inconsistent Firefox vs Chrome
- accent-color not supported pre-Safari 15.4
- type=date renders as text in older Safari
- type=colour not supported on iOS Safari
- Repayment result always $0.00 — not implemented
Practice 04 · State management (open)
- Item price static — doesn't update with qty
- Subtotal says '2 items' but 3 in cart
- Subtotal maths ambiguous (unit vs line price)
- Qty buttons non-functional
- Checkout button always enabled
Practice 05 · Loading & async (open)
- Spinner shown while results visible
- '47 results' but only 3 shown
- 'Last updated: never' placeholder
- No empty state for zero results
- Avatars are grey placeholders
Practice 06 · Navigation & routing (open)
- Active nav item not clearly distinguished
- Session warning not dismissible
- Session timer is static HTML
- Admin links visible to all roles
- All nav links href='#'
Practice 07 · Session & auth (open)
- Guest user sees Admin panel link
- Delete account no confirmation
- Last login shows 'undefined'
- Sign out href='#' — non-functional
- Full email exposed without masking
Practice 08 · Error recovery (open)
- Error + progress bar shown simultaneously
- Upload button permanently disabled
- Error has no actionable retry path
- Progress bar stuck at 65% no status label
- No file size validation feedback
Practice 09 · Regression (open)
- Wellington address but Country = Australia
- Profile 40% complete despite all fields filled
- Avatar image broken — empty placeholder circle
- Security (IDOR): page metadata data-user-id=1024 does not match displayed user ID 123
- Security (XSS): Account type field renders raw script tags instead of escaping them
- Date paradox: Member since shows 2028 — a future date
Practice 10 · Exploratory charter (open)
- Country defaults to Australia
- Postcode maxlength=4 breaks UK postcodes
- Surname not required
- Postcode not required
- Cart total $0.00 at checkout
- Billing same checkbox — no conditional section
- No back button to cart