meal-order-manager/tests/fixtures/menu.json
Adam Moussa 602b0c7fd0
fix(form): accessibility for qty, status, and descriptions (#81)
* fix(form): add status regions, live total, and a11y CSS

Dual alert/status slots for form and admin, aria-live on the sticky
total, success heading focus target, More/Less affordance styles, and
44px coarse-pointer chip padding.

* fix(form): wire a11y labels, status helper, and desc expand

Meal-scoped qty labels at card create time, aria-pressed filter chips,
dual-node showStatus replacing all alert() calls (confirm retained),
overflow-gated More/Less, and success-heading focus after submit.

* test(form): cover a11y labels, status region, and desc toggle

Structural checks for dual status nodes and no alert(); Playwright for
init-time qty labels, aria-pressed chips, overflow More/Less, and
failed-submit text landing in role=alert.

* fix: address review comments
2026-07-31 10:15:43 -04:00

60 lines
No EOL
1.5 KiB
JSON

{
"scraped_at": "2026-07-27T12:00:00+00:00",
"meal_count": 5,
"meals": [
{
"name": "Chicken Bowl",
"price": 12.0,
"calories": "500",
"protein": "40g",
"description": "Simple bowl",
"dietary_tags": [
"High Protein"
],
"image_url": "",
"is_new": false
},
{
"name": "Luis' Lomo Saltado",
"price": 14.5,
"calories": "620",
"protein": "35g",
"description": "Stir-fried beef tenderloin with onions, tomatoes, and soy sauce, served over french fries with a side of steamed white rice and aji amarillo. A long fixture blurb used to exercise the three-line clamp and the More expand control in accessibility tests.",
"dietary_tags": [],
"image_url": "",
"is_new": true
},
{
"name": "Meal with \"quotes\"",
"price": 11.0,
"calories": "400",
"protein": "20g",
"description": "Quoted",
"dietary_tags": [
"<b>tag</b>"
],
"image_url": "",
"is_new": false
},
{
"name": "</script><script>alert(1)</script>",
"price": 9.0,
"calories": "300",
"protein": "10g",
"description": "Hostile script",
"dietary_tags": [],
"image_url": "",
"is_new": false
},
{
"name": "<!--<script>alert(1)</script>-->",
"price": 9.0,
"calories": "300",
"protein": "10g",
"description": "Hostile script comment",
"dietary_tags": [],
"image_url": "",
"is_new": false
}
]
}