Turn the people looking you up into bookings: 10 AI skills for your own site

menu-on-site

a menu people can actually read on a phone

How the two work together

Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.

Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.

No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.

Prompt for Claude

---
name: menu-on-site
description: Turns a menu that arrives as a PDF, a photograph or a poster image into a menu a person can actually read, zoom, search and hear read aloud on a phone, with the allergen route, the price information and the service charge all present, and one dated master file so the old version stops serving. Use when your menu is a download, when someone has told you they could not read it, or before you pay for a new website.
---

# Put a menu on the page that a phone can read, zoom and read aloud

You give this the menu exactly as it is published today, the page it sits on, and the allergen and price information you already hold. You get back a verdict on what the menu technically is, every accessibility failure named with the criterion it fails, the allergen route checked against the published requirement, the price and service charge information checked, and the menu rebuilt as real text with a single dated master and the old file taken out of service. It does not rewrite your dish descriptions, it does not price anything, and it does not decide what goes on the menu.

## What it does

1. **Establish what the menu actually is, technically, before arguing about anything else.** Open the menu page on a phone and try three things: select a word with your finger, search the page for the name of a dish, and pinch to zoom in on one line. If you cannot select the word, the menu is a picture. If the search finds nothing, the menu is a picture or a download. If zooming in makes the whole page bigger and pushes the prices off the right edge, it is a picture. Write down the verdict in one line, along with the file type and size, because a 4MB PDF on mobile data is a different problem from a 40KB one and both are usually described as "the menu is on the website".

2. **If the menu is a picture, that is a Level AA accessibility failure and the fix is real text.** WCAG 2.2 success criterion 1.4.5 Images of Text, Level AA, is unambiguous: "If the technologies being used can achieve the visual presentation, text is used to convey information rather than images of text", with exceptions only where the image "can be visually customized to the user's requirements" or where "a particular presentation of text is essential to the information being conveyed". The note adds that logotypes are essential. A menu is not a logotype. A restaurant menu set in a nice typeface can be achieved in HTML with the same typeface, so the exception does not apply and the picture has to go.

3. **Test that the text survives being made twice as big, and that nothing has to be scrolled sideways.** WCAG 2.2 success criterion 1.4.4 Resize Text, Level AA, requires that "except for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality". Success criterion 1.4.10 Reflow, Level AA, requires content to be presented "without requiring scrolling in two dimensions" at a width equivalent to 320 CSS pixels. Do it: set the phone text size to its largest, then load the menu. Prices that slide under the dish names, columns that overlap, and a price column that needs a sideways drag are all failures, and they are the daily experience of a great many customers over sixty.

4. **Understand that this is a duty owed in advance, not a courtesy extended on request.** Section 29 of the Equality Act 2010 puts service providers under the reasonable adjustments duty, and section 20(6) is specific about information: "Where the first or third requirement relates to the provision of information, the steps which it is reasonable for A to have to take include steps for ensuring that in the circumstances concerned the information is provided in an accessible format." Schedule 2 paragraph 2(2) makes it anticipatory: "the reference in section 20(3), (4) or (5) to a disabled person is to disabled persons generally." You are not required to wait until a particular customer cannot read the menu. The duty is owed to disabled people at large, before any of them arrives.

5. **Where an image genuinely stays on the page, give it a text alternative, and never use the alternative to carry the menu.** WCAG 2.2 success criterion 1.1.1 Non-text Content, Level A, requires that "all non-text content that is presented to the user has a text alternative that serves the equivalent purpose". A photograph of the dining room gets a short description. A decorative flourish gets an empty alternative so screen readers skip it. What must not happen is the whole menu being pasted into an alt attribute as a workaround, because it cannot be zoomed, cannot be searched, cannot be copied and is invisible to the sighted customer squinting at the picture. Fix the menu, then describe the pictures.

6. **Make sure the menu on the phone is the same menu as the one on the desktop, and that nothing has to be tapped to exist.** Google's mobile-first indexing guidance states that "Google uses the mobile version of a site's content, crawled with the smartphone agent, for indexing and ranking", and instructs site owners to "make sure that your mobile site contains the same content as your desktop site", adding that you "can have a different design on mobile to maximize user experience (for example, moving content into accordions or tabs); just make sure that the content is equivalent". It also warns: "Don't lazy-load primary content upon user interaction. Google won't load content that requires user interactions." A menu behind a "tap to view" that loads nothing until tapped is a menu nobody can find.

7. **Check the allergen route, and check it separately for eating in and for ordering online.** The Food Standards Agency requires, for distance selling: "If food is sold online or by phone through distance selling, allergen information must be provided at two stages in the order process", first "before the purchase of the food is completed - this can be in writing (on a website, catalogue or menu) or orally (by phone)" and again "when the food is delivered". Its advice is that businesses "should make written allergen information available to the consumer both before the food is ordered and when it is delivered". For eating in, the FSA notes information can be given by labelling individual dishes "or by displaying a sign directing customers to ask staff", and it "must be visible, clearly legible and easily accessible to the customer".

8. **Put the price information next to the prices rather than in a footnote nobody reaches.** Where a marketing communication quotes prices, CAP Code rule 3.4 treats as material information "the total price of the advertised product, including any fees, taxes, charges or other payments that the consumer will necessarily incur if the consumer purchases the product". Regulation 6(2) of the Electronic Commerce (EC Directive) Regulations 2002 adds that where a service provider refers to prices, "these shall be indicated clearly and unambiguously and, in particular, shall indicate whether they are inclusive of tax and delivery costs". So: the service charge and whether it is discretionary, any minimum spend, any delivery fee, and any price that differs at the weekend, all beside the menu and not at the bottom of a terms page.

9. **Leave one dated master and take the old file out of service.** The commonest way a corrected menu goes wrong is that the new one is published and the old PDF stays on the server, still linked from the Google listing, still the top result for the venue's name and the word menu, still showing last winter's prices. Name one master, give it a version date printed on the page itself, redirect or remove every superseded file, and search for the venue's name plus "menu" to find the copies you forgot. Then write down who republishes it when a dish changes, and check the page again a week later to confirm the old one is gone.

## Then it checks

1. The verdict on what the menu technically is was reached by trying to select text, search for a dish and zoom on a real phone, and the file type and file size are recorded.
2. No item of menu information, including any price, any allergen note and any section heading, exists only inside an image or only inside a downloadable file.
3. The menu was loaded at the phone's largest text setting and at a 320 pixel width, and no content was lost, overlapped or required sideways scrolling, with the failures listed line by line where there were any.
4. Every image remaining on the menu page has either a short text alternative that serves its purpose or an empty alternative marking it decorative, and no alternative contains menu content.
5. The allergen route is recorded separately for eating in and for ordering online, and the online route shows information available both before the order is completed and at delivery.
6. One master menu is named with a version date visible on the page, and every superseded file has been confirmed removed or redirected by opening its address after the change.

Any check fails: name it, redo that step once. Failed twice: say what is wrong and stop.

## Rules
- Public information only.
- Never invent a fact, a number or a quote.
- Anything sent in someone's name says whose name it is.
- Never write, reword, shorten or improve a dish description or a price. This skill changes how the menu is published, never what it says, and the claim wording and the costings belong to the owner and to the separate menu skills.
- Never write, guess, complete or infer an allergen entry. Allergen information comes from the kitchen's own records and from nowhere else, and a plausible allergen line invented to fill a gap is the single most dangerous thing a document like this could contain. A gap stays a gap and goes on the list.
- Never tell an owner their site is accessible, or that it complies with the Equality Act 2010 or with WCAG. This checks named criteria against a page and lists what it found, and the criteria checked here are a small fraction of the standard.
- Never accept "we tell people if they ask" as the allergen route for online orders. The published requirement is information at two stages of the order process, and a promise to answer questions is not information provided before the purchase is completed.
- Never leave the old menu file live because the new one is up. Two live menus is one wrong menu, and the wrong one is usually the one search results point at.
- This output is a working document prepared for the owner to check against their own kitchen allergen records, prices and service charge policy before it is published, and for their environmental health officer, trading standards service or solicitor to check the allergen route and the price information. It applies published accessibility criteria and published food information requirements to a page as it stands. It is not legal advice, it is not an accessibility certification and it does not confirm that any allergen information is correct.

## Built from
- World Wide Web Consortium, "Web Content Accessibility Guidelines (WCAG) 2.2", W3C Recommendation 12 December 2024, https://www.w3.org/TR/WCAG22/, read 16 September 2026: success criterion 1.4.5 Images of Text in step 2, 1.4.4 Resize Text and 1.4.10 Reflow in step 3, and 1.1.1 Non-text Content in step 5.
- Equality Act 2010, sections 20 and 29, https://www.legislation.gov.uk/ukpga/2010/15/section/20 and https://www.legislation.gov.uk/ukpga/2010/15/section/29, read 16 September 2026: the accessible format wording at section 20(6) and the service provider duty at section 29(7), in step 4.
- Equality Act 2010, Schedule 2, paragraph 2(2), https://www.legislation.gov.uk/ukpga/2010/15/schedule/2, read 16 September 2026: the anticipatory nature of the duty, which is the point of step 4.
- Google, "Mobile site and mobile-first indexing best practices", Google Search Central, https://developers.google.com/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing, last updated 10 December 2025, read 16 September 2026: the same-content requirement, the accordions and tabs allowance and the lazy-loading warning, in step 6.
- Food Standards Agency, "Allergen guidance for food businesses", GOV.UK, https://www.gov.uk/government/publications/allergen-guidance-for-food-businesses/allergen-guidance-for-food-businesses, published 2 April 2020, last updated 17 July 2026, read 16 September 2026: the two stages required for distance selling and the visible, clearly legible and easily accessible standard for eating in, in step 7.
- Committee of Advertising Practice, CAP Code (Edition 12), Section 3 "Misleading advertising", https://www.asa.org.uk/type/non_broadcast/code_section/03.html, no publication date shown on the page, read 16 September 2026: rule 3.4 on the total price and the fees a consumer will necessarily incur, in step 8.
- The Electronic Commerce (EC Directive) Regulations 2002, SI 2002/2013, regulation 6(2), https://www.legislation.gov.uk/uksi/2002/2013/regulation/6/made, read 16 September 2026: the requirement that prices be indicated clearly and unambiguously and state whether they are inclusive of tax, in step 8.

Prompt for Codex

# menu-on-site

## You are given
The address of the page where this UK hospitality business publishes its menu, the menu file itself exactly as served with its file type and byte size, and the saved HTML of the page. Screenshots taken on a named phone handset at the default text size, at the phone's largest text setting and at a 320 CSS pixel width, with the date and handset recorded. Claude's verdict on what the menu technically is, one of real text, image, downloadable file or mixed, reached by trying to select a word, search for a dish and zoom, with a line by line list of anything that overlapped, was cut off or required sideways scrolling at the larger sizes. Every image on the page with its existing alternative text exactly as written and Claude's classification of each as informative or decorative. The kitchen's own allergen records and the route by which allergen information is currently given, separately for eating in and for ordering online. The price list, the service charge policy, any minimum spend, any delivery fee and any price that differs by day or session. Every menu file address currently live on the site, including superseded ones.

## Produce
Write into a `./menu-on-site-output/` folder:

1. `menu-format.csv` with these columns in this order: `menu_ref`, `file_address`, `file_type`, `file_size_bytes`, `text_is_selectable`, `dish_name_is_searchable`, `zooms_without_pixelating`, `verdict`, `criterion_failed`. `menu_ref` is M001 upward. `file_type` is exactly one of `HTML text`, `PDF`, `JPEG`, `PNG`, `WEBP`, `embedded third party viewer`, `other`. `verdict` is exactly one of `real text`, `image of text`, `downloadable file`, `mixed`. Every row whose verdict is not `real text` carries `WCAG 2.2 SC 1.4.5` in `criterion_failed`.
2. `menu-items.csv` with columns: `item_ref`, `section_heading_verbatim`, `item_name_verbatim`, `description_verbatim`, `price_verbatim`, `exists_as_real_text`, `source_of_text`. `item_ref` is I001 upward. `source_of_text` is exactly one of `page HTML`, `transcribed from image`, `transcribed from PDF`, `supplied by owner`. Every row with `exists_as_real_text` of `no` is listed in `gaps.md`. Text is transcribed exactly and never corrected, reworded or shortened.
3. `resize-and-reflow.csv` with columns: `test`, `setting_used`, `item_ref`, `failure_type`, `what_was_observed`, `criterion_cited`. `test` is `text size 200 percent` or `width 320 CSS pixels`. `failure_type` is exactly one of `content lost`, `content overlapped`, `content cut off`, `horizontal scrolling required`, `functionality lost`, `none`. `criterion_cited` is `WCAG 2.2 SC 1.4.4` on text size rows and `WCAG 2.2 SC 1.4.10` on width rows.
4. `image-alternatives.csv` with columns: `image_ref`, `file_address`, `classification`, `existing_alt_verbatim`, `alt_is_empty`, `alt_contains_menu_content`, `serves_equivalent_purpose`, `replacement_alt_supplied`. `classification` is exactly one of `informative` or `decorative`. Any row where `alt_contains_menu_content` is `yes` is listed in `gaps.md`. Replacement alternative text is copied verbatim from the input and is never written by Codex.
5. `allergen-route.csv` with columns: `channel`, `stage`, `information_given`, `format`, `wording_verbatim`, `meets_requirement`, `source_cited`. `channel` is exactly one of `eating in` or `distance selling`. `stage` is exactly one of `before the purchase is completed`, `at delivery`, `on the premises`. `format` is exactly one of `written on the website`, `written on the menu`, `written on the packaging`, `spoken by phone`, `sign directing customers to ask staff`, `none`. `meets_requirement` is `yes`, `no` or `cannot be determined from what was supplied`.
6. `price-information.csv` with columns: `item_or_scope`, `price_verbatim`, `service_charge_stated`, `service_charge_wording_verbatim`, `discretionary_stated`, `minimum_spend_stated`, `delivery_fee_stated`, `tax_inclusivity_stated`, `varies_by_day_or_session`, `distance_from_price_on_page`. `distance_from_price_on_page` is exactly one of `beside the price`, `same screen`, `elsewhere on the page`, `another page`, `not published`.
7. `superseded-files.csv` with columns: `file_address`, `date_first_seen`, `status_after_change`, `date_rechecked`, `http_response`, `still_linked_from`. `status_after_change` is exactly one of `removed`, `redirected`, `still live`, `not yet rechecked`. Every row not marked `removed` or `redirected` with a recheck date is listed in `gaps.md`.
8. `gaps.md` - a numbered list of: any menu item not existing as real text; any resize or reflow failure; any image with no alternative or with menu content inside its alternative; any allergen stage not met or not determinable; any allergen entry the kitchen records do not cover; any price with no service charge, tax or fee information beside it; any superseded file still live; and whether a master menu with a visible version date has been named.

## Rules
- Codex measures, transcribes and records. It never invents, never rewords the owner's copy, and never makes the judgement that was supplied to it. What the menu says, what an image is for and what the allergen information is are all decisions that arrive with the input.
- Never write, complete, correct or infer an allergen entry, under any circumstance, including where the answer appears obvious from the dish name. Where the kitchen records do not cover an item, `allergen-route.csv` records the gap and `gaps.md` names the item. This is the one rule in this file that has no exception.
- Never rewrite a dish name, a description or a price. Transcription from an image or a PDF is exact, including spelling, capitalisation, punctuation and any typographical error, and errors found are recorded in `gaps.md` rather than fixed.
- Never write replacement alternative text, replacement headings or replacement copy. Where replacements are missing, the cell is left empty and the fact is listed in `gaps.md`.
- Never record a page as accessible or compliant. Only the named criteria are tested, each result cites its criterion by number, and no file states that the page meets WCAG 2.2 or the Equality Act 2010.
- Never mark a superseded file removed without reopening its address after the change and recording the HTTP response and the date.
- Never write a conversion rate, a benchmark or an industry average. No such figure exists for a single independent UK venue and none is to be recorded.
- File sizes are read in bytes from the served file, never estimated, and a test with no screenshot evidence is recorded as not tested rather than passed.
- Every quoted string is copied exactly, including punctuation, capitalisation, currency symbols and any emoji.
- Use British English, GBP and DD Month YYYY dates. No em dashes in any file you write, and any supplied text containing one is recorded verbatim and flagged in `gaps.md`.
- Every file ends with this line: this is a working document prepared for the owner to check against their own kitchen allergen records, prices and service charge policy, and for their environmental health officer, trading standards service or solicitor to check the allergen route and the price information. It applies supplied criteria to a page as it stands and is not legal advice, an accessibility certification or a confirmation that any allergen information is correct.

## Return
The absolute path of each file written and the row count of each CSV. The verdict on what the menu technically is, with its file type and byte size. How many menu items exist as real text and how many do not. The number of resize and reflow failures, with the criterion cited for each. How many images carry no alternative, and whether any alternative contains menu content. The allergen verdict for eating in and for distance selling, stage by stage, and every item the kitchen records do not cover. How many prices carry no service charge, tax or fee information beside them. Every superseded menu file still live, with its HTTP response and the date rechecked. Whether a master menu with a visible version date has been named. And the `gaps.md` item count.

Built from the best public work on this

Sources for menu-on-site

Everything below was opened and read on 16 September 2026. Nothing is cited that could not be loaded.

1. World Wide Web Consortium, "Web Content Accessibility Guidelines (WCAG) 2.2"

https://www.w3.org/TR/WCAG22/, W3C Recommendation 12 December 2024, read 16 September 2026. The document records its editors as Alastair Campbell, Chuck Adams, Rachael Bradley Montgomery, Michael Cooper and Andrew Kirkpatrick, and this version supersedes WCAG 2.1.

Four success criteria carry most of this skill, quoted rather than summarised because owners are routinely told that a PDF menu is fine.

Success criterion 1.4.5 Images of Text, Level AA, is step 2: "If the technologies being used can achieve the visual presentation, text is used to convey information rather than images of text except for the following: Customizable - The image of text can be visually customized to the user's requirements; Essential - A particular presentation of text is essential to the information being conveyed." The note that follows closes the argument: "Logotypes (text that is part of a logo or brand name) are considered essential." A menu is not a logotype and a web font can produce the same look, so the essential exception does not reach it.

Success criterion 1.4.4 Resize Text, Level AA, is the first half of step 3: "Except for captions and images of text, text can be resized without assistive technology up to 200 percent without loss of content or functionality." Note the exception for images of text, which is why step 2 comes first. A picture of a menu does not fail 1.4.4, it fails 1.4.5 and then cannot be tested at all.

Success criterion 1.4.10 Reflow, Level AA, is the second half: content must be presented "without loss of information or functionality, and without requiring scrolling in two dimensions" at "a width equivalent to 320 CSS pixels", except for parts needing a two-dimensional layout, whose listed examples are maps, diagrams, video, games, presentations and data tables. A menu laid out in two columns is not one of them.

Success criterion 1.1.1 Non-text Content, Level A, is step 5: "All non-text content that is presented to the user has a text alternative that serves the equivalent purpose."

Where the skill departs: WCAG 2.2 contains 86 success criteria and this skill checks four. It refuses to describe a page as accessible or conformant on the strength of them. Contrast, keyboard access, focus order and screen reader behaviour are all real and all outside this skill. The four chosen are the ones a menu published as a picture fails automatically, which makes them the place for a venue with no developer to start.

2. Equality Act 2010, sections 20 and 29, and Schedule 2

https://www.legislation.gov.uk/ukpga/2010/15/section/20, https://www.legislation.gov.uk/ukpga/2010/15/section/29 and https://www.legislation.gov.uk/ukpga/2010/15/schedule/2, all read 16 September 2026. Section 29 is recorded as wholly in force from 1 October 2012.

Step 4 answers the question every owner asks once WCAG is mentioned, which is whether any of this is actually required of them.

Section 29(1) puts a service provider under the general duty not to discriminate against "a person requiring the service", and section 29(7) states that "a duty to make reasonable adjustments applies to a service-provider".

Section 20(3) is the requirement a menu engages: where "a provision, criterion or practice" of the provider's "puts a disabled person at a substantial disadvantage in relation to a relevant matter in comparison with persons who are not disabled", the provider must "take such steps as it is reasonable to have to take to avoid the disadvantage". Section 20(6) applies it directly to information: "Where the first or third requirement relates to the provision of information, the steps which it is reasonable for A to have to take include steps for ensuring that in the circumstances concerned the information is provided in an accessible format."

Schedule 2 paragraph 2(2) supplies the point most people miss: "For the purposes of this paragraph, the reference in section 20(3), (4) or (5) to a disabled person is to disabled persons generally." The duty is anticipatory. It is not triggered by a customer complaining, and a venue that intends to produce a large-print menu if anybody ever asks has misunderstood which way round the obligation runs.

Where the skill departs: the Act says reasonable, what is reasonable for a twenty-cover bistro is not what is reasonable for a hotel group, and the statute deliberately does not define it. The skill never tells an owner they are in breach, never tells them they comply and never weighs reasonableness. It names the barrier, quotes the duty and sends the question to the owner's solicitor.

3. Food Standards Agency, "Allergen guidance for food businesses"

https://www.gov.uk/government/publications/allergen-guidance-for-food-businesses/allergen-guidance-for-food-businesses, published 2 April 2020, last updated 17 July 2026, read 16 September 2026. The publication page states that it applies to England, Northern Ireland and Wales.

Step 7 is this document, and it is the reason the skill treats a menu page as a food information surface rather than a piece of marketing.

The distance selling requirement is stated twice over. First the rule: "If food is sold online or by phone through distance selling, allergen information must be provided at two stages in the order process." Then the detail: information must be provided "before the purchase of the food is completed - this can be in writing (on a website, catalogue or menu) or orally (by phone)" and again "when the food is delivered - this can be in writing (allergen stickers on food or an enclosed copy of a menu) or orally (by phone)". The FSA's own preference is plain: businesses "should make written allergen information available to the consumer both before the food is ordered and when it is delivered".

For eating in, the guidance allows either route: "You can provide this information by labelling the allergens contained in individual dishes, or by displaying a sign directing customers to ask staff for allergen information", with the standard that "this information must be visible, clearly legible and easily accessible to the customer".

Where the skill departs: the FSA document also covers cross-contamination, ingredient recording, staff training, prepacked for direct sale labelling and vegan claims, none of which this skill touches. This is a web publishing skill and the allergen material it takes is only the part about where the information must appear and when. The skill goes further than the FSA in one direction only, by refusing absolutely to generate an allergen entry, including where a dish name makes the answer look obvious. A wrong allergen line in a document that looks official is a category of harm no usefulness elsewhere would justify.

4. Google, "Mobile site and mobile-first indexing best practices", Google Search Central

https://developers.google.com/search/docs/crawling-indexing/mobile/mobile-sites-mobile-first-indexing, last updated 10 December 2025, read 16 September 2026.

Cited narrowly, for step 6, and only where it touches whether a person can reach the menu at all.

The framing sentence is the one owners need: "Google uses the mobile version of a site's content, crawled with the smartphone agent, for indexing and ranking. This is called mobile-first indexing." The operative instruction follows: "Make sure that your mobile site contains the same content as your desktop site." Crucially, the page is not hostile to mobile design patterns, and says so: "You can have a different design on mobile to maximize user experience (for example, moving content into accordions or tabs); just make sure that the content is equivalent to the desktop site."

The warning the skill takes is about a specific failure, very common on menu pages built in website builders: "Don't lazy-load primary content upon user interaction. Google won't load content that requires user interactions (for example, swiping, clicking, or typing) to load." A menu that only exists once a "View our menu" control is pressed, and loads nothing until then, is absent from the page in every sense that matters. The image guidance on the same page contributes to step 5, in particular "make sure that the mobile site has the same alt text for images as the desktop site" and the instruction to "use descriptive alt text".

Where the skill departs: most of this page is about crawling, indexing, structured data and separate URL configurations, and ranking is covered by a different pack. The skill takes the same-content principle and the lazy-loading warning because both describe a menu the customer cannot see, and leaves the indexing consequences alone.

5. CAP Code Section 3, and the Electronic Commerce (EC Directive) Regulations 2002, regulation 6(2)

https://www.asa.org.uk/type/non_broadcast/code_section/03.html, no publication date shown on the page, and https://www.legislation.gov.uk/uksi/2002/2013/regulation/6/made, both read 16 September 2026.

Step 8 comes from these two together, because a published menu is simultaneously an advertisement and a price list on an information society service.

CAP rule 3.4 lists what counts as material information where a marketing communication quotes prices. The items used are "the total price of the advertised product, including any fees, taxes, charges or other payments that the consumer will necessarily incur if the consumer purchases the product" and "any freight, delivery, or postal charges, including any taxes, not included in the total price of the product but which the consumer may choose to incur". Rule 3.3 adds that material information must not be provided "in a way that is unclear or untimely, or in a way that the consumer is unlikely to see or hear it", which is what a service charge disclosed only on a terms page amounts to.

Regulation 6(2) is one sentence and applies regardless of the CAP Code: "Where a person providing an information society service refers to prices, these shall be indicated clearly and unambiguously and, in particular, shall indicate whether they are inclusive of tax and delivery costs."

Where the skill departs: the skill takes no position on whether a service charge should be applied, at what rate, or whether it is discretionary, all of which are commercial and employment questions for the owner and their adviser. It checks only that whatever the venue does is stated beside the prices rather than somewhere a customer meets it for the first time on the bill.

Best public prompt we found for this job

The closest public artefact is the `accessibility-review` skill in Anthropic's `knowledge-work-plugins` repository, raw source at https://raw.githubusercontent.com/anthropics/knowledge-work-plugins/main/design/skills/accessibility-review/SKILL.md. The repository has 24,123 stars, read from api.github.com on 16 September 2026.

Its testing approach is the part worth taking, and one line in particular:

1. Automated scan (catches ~30% of issues)
...
5. Zoom to 200% - does layout break?

Two of those are in this skill. The zoom test is step 3 almost word for word. And the honesty about automated scanning, that it catches a minority of issues, is why this skill is built around three things a person does with their hands on a phone rather than around a tool's report.

What we changed. The public skill audits against WCAG 2.1 AA and lists eleven criteria across four principles, which for a venue owner with a PDF menu produces a long table and no first move. This skill checks four criteria and fixes one thing, which is the menu being a picture. It also swaps the standard: WCAG 2.2 has been a W3C Recommendation since 12 December 2024, and two of the criteria this pack uses elsewhere, Redundant Entry and Target Size, are new in 2.2 and absent from a 2.1 checklist.

Three things we deliberately did not copy. Its output template asks for severity ratings of critical, major and minor, which invites an owner to defer everything marked minor, and a menu nobody can read has no minor version. It has no legal layer, so it cannot tell a UK service provider that the duty is anticipatory under Schedule 2 and owed before anybody complains, which is the single fact most likely to change behaviour. And it has no concept of food law, which is reasonable for a general design tool and unacceptable for a menu, where the allergen route is the part that can actually hurt somebody.

Want this running in your business?

I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.