Fourteen
sources, six
themes, twelve
a11y fixes.
What was read before the Steady storefront was designed, what it changed, and the accessibility audit that followed with every Critical and Major finding fixed in the code.
Read the design notesSelf-directed concept project. No primary research was conducted. The findings below are synthesised from 14 publicly available sources — customer reviews, community discussions, competitor product pages, regulator guidance and published category data, all cited with live links at the bottom of this page. The research plan and interview guide set out how I would structure primary research if this were a live engagement; they are method, not results.
There are no invented participants and no invented quotes anywhere on this page. Every quotation is from a real, linked, public source, and prevalence is expressed as a count of those sources rather than as a percentage of people.
The research plan I would run
Objectives
- Understand what makes a sceptical supplement buyer decide a label is honest, and which specific proofs they check first.
- Find out where the £39 price sits in their head: against a £79 subscription, against a £4 bottle of D3, or against nothing at all.
- Establish whether publishing a poor batch result reads as integrity or as a warning.
Method, and why this method
- Semi-structured interviews, 45 minutes, remote, with the product page shared and the participant driving. The question is why a decision gets made, and the reasoning is not available from behavioural data: an analytics funnel can tell me people leave at the price section, not that they left because they could not find a dose.
- Followed by an unmoderated first-click test on the certificate section with a larger sample, because “can people find the February batch and understand what is wrong with it” is a task question and a task question deserves a task test.
- Not a survey. Asking people to rate how much they value transparency returns a straight nine out of ten from everybody and teaches you nothing.
Who I would recruit
- Screener: bought a supplement online in the last six months; can name the brand unprompted; has cancelled at least one subscription of any kind in the last year. Recruit eight.
- A second cell of four who have never bought a greens powder and say they are not interested, to test whether the comparison table talks them out of it as intended. If it does not, the table is not doing its job.
- Exclude anyone working in supplements, marketing or nutrition. They review the page instead of using it.
Sample and timeline
- Twelve interviews total, six per cell where possible, which is where the themes usually stop being new. Two weeks to recruit, one week to run, four days to synthesise.
- Then 30 to 40 participants on the unmoderated first-click test, which takes a day to set up and reports in 48 hours.
Interview guide, written for this brief
Forty-five minutes, five parts. Every question is open and none of them names a benefit, a competitor or a price first — if a participant brings up transparency, that is a finding; if I bring it up, it is an echo.
1. Warm-up
5 min- Tell me about the last supplement you bought. What was it and what made you pick it up?
- How did you come across it?
Probes. What happened just before that? · Was anyone else involved in that decision?
2. Context
10 min- Walk me through what you take at the moment, if anything. What does a normal morning look like?
- Has anything you have bought in this area ever disappointed you? Tell me about it.
- How do you decide whether something is worth the money?
Probes. What did you do next? · How did you find that out? · What would have changed your mind?
3. Deep dive
15 min- Here is a product page. Have a look around and talk me through what you are doing, without worrying about what I want you to look at.
- You stopped on that section. What were you looking for there?
- If you were going to check whether any of this is true, where would you start?
- What would you want to know that is not here?
Probes. You paused. What was going through your mind? · Say more about that. · How does that compare with what you are used to seeing?
4. Reaction
10 min- This section shows lab results for three batches, and one of them has a result the company flags as poor. Read it and tell me what you make of it.
- How would you describe this page to a friend who was thinking of buying it?
- What would make you close this tab?
Probes. What makes you say that? · Which part of it gave you that impression?
5. Wrap-up
5 min- If you could change one thing about how supplements are sold, what would it be?
- Is there anything I should have asked you about and did not?
Probes. Anything you expected me to ask?
Synthesis
Six themes, with prevalence given as the number of the 14 sources each one surfaced in. Two of them are thin and are labelled as such: a theme carried by two sources is a hypothesis, not a finding.
Nobody can tell how much of anything they are buying
The complaint that recurs most is not that the ingredients are bad, it is that the amounts are unknowable. Source 4 counts 91 advertised ingredients hidden behind six proprietary sub-blends. Source 12 supplies the industry’s own word for it. Source 11, a real UK brand page, lists eight ingredients and not one dose.
“A proprietary blend lists all of the ingredients in the product, but groups them together… you have no clue exactly how much of each ingredient you are getting.”
So what. Dose disclosure is not a nice-to-have feature on a spec sheet. It is the category’s open wound, and it is cheap to fix if you are willing to.
The price is the argument, and it is being lost
Price scepticism appears in more sources than any other single objection, and it is rarely about affordability. It is about not being able to work out what the money buys. Source 3 sets $3.30 a serving against $0.90 for a competitor. Source 4 scores value 0.3 out of 5. Source 13 is people simply doing the sums out loud on a forum.
“Waste of money, just buy and eat the veggies or turn them into a smoothy.”
So what. A price page that only justifies itself with adjectives loses to a forum post with arithmetic in it. Show the arithmetic.
Claims outrun the evidence, and the regulator has already written it down
Sources 9 and 10 set out precisely what may and may not be said, down to the word. Source 11 shows a live UK page saying “Strengthens your immune system daily” anyway. Source 14 notes the gap between what the category claims and what has been shown.
“[Nutrient] contributes to the normal function of the immune system.”
So what. Restraint is available as a differentiator because almost nobody is using it. Printing the small permitted sentence is a positioning decision, not a legal chore.
Contamination is now a mainstream worry, not a forum one
Source 1 put heavy metals in supplement powders on national news: more than two thirds of 23 products over the threshold, plant-based worst by roughly nine times. Sources 4 and 11 both claim testing and publish no certificate.
“We advise against daily use for most protein powders, since many have high levels of heavy metals.”
So what. “Third-party tested” as a badge is now worth very little. The certificate itself is worth a great deal, and a green powder is in the exact category the testing found worst.
Getting out of the subscription is a documented problem
Only two sources touch it, so this is a smaller finding than the others, but both are heavyweight. Source 3 cites Better Business Bureau complaints about cancellation. Source 6 quantifies the national scale and sets out the law arriving in spring 2027.
“Where a consumer signed up online, they must be able to exit online.”
So what. Easy cancellation stops being a kindness and becomes a statutory requirement. Saying so plainly now is free credibility.
It tastes of something, and buyers want to know what
The weakest-supported theme here, and included because it is the one that generates refunds. Source 2 reports “similar to a matcha taste”; source 3 has a tester describing “a bitter, onion-like aftertaste”.
“A bit of a bitter, onion-like aftertaste that lingered in the back of their mouth.”
So what. Describing the flavour honestly costs a few orders and saves a lot of returns. It is also the cheapest possible proof that the rest of the page is candid.
Insight to opportunity
| Insight | Opportunity | Impact | Effort |
|---|---|---|---|
| Doses are hidden behind blends across the category (T1)Built: The 32-row filterable table is the second section on the page | Publish all 32 amounts, in label order, with the standardisation for each | High | Low |
| Price objections are arithmetic, not sentiment (T2)Built: “Where the £39 goes”, beside the pricing cards rather than buried in an FAQ | Break the £39 down into seven lines that add to £39 | High | Medium |
| “Third-party tested” has been devalued (T4)Built: Three batch certificates, February included, with its chlorate result in full | Show the certificate, including a bad one | High | High |
| Regulator-banned claim language is still in wide use (T3)Built: Section 01, now quoting wording found on real category pages | Open by striking out the three sentences we will not say | Medium | Low |
| Cancellation friction is both common and about to be illegal (T5)Built: Plan switch, basket and FAQ all carry it; the FAQ names the 2027 rule | State the exit route before the buy button, not after | Medium | Low |
| Flavour drives returns (T6)Built: The FAQ says “tart pineapple over a green, slightly seaweedy base”, and a two-star review is on the page | Describe the taste in the words a disappointed customer would use | Low | Low |
Who this is for
The label reader
Has already been burned by a proprietary blend and now checks the back of the pack before the front. Arrives with a specific question, usually about one ingredient form. Converts on evidence, not on tone.
Sources 3, 4, 12 and the forum thread in 13
The winter topper-upper
Not really a supplement person. Comes in around October because of the vitamin D advice and would be genuinely better served by a £4 bottle of D3, which the comparison section says out loud.
Sources 7 and 8
The escapee
Currently paying £79 a month for something they no longer believe in and want an exit that does not feel like a downgrade. Price-sensitive, but what they actually want is to stop feeling stupid.
Sources 2, 3, 6 and 13
What the research changed
The section that matters. Seven concrete edits, one of which is an admission that a finding contradicted what was already built, and one of which is a finding that changed nothing.
The basket was telling people a tax lie
It printed “VAT is not charged on food supplements”, two clicks from a footer carrying a VAT number. Source 5 is unambiguous: supplements are standard-rated. The line is gone, the totals now show “Includes VAT at 20% · £6.50”, and there is a new FAQ that says so in plain words. On a site whose whole argument is factual rigour this was the most expensive sentence on it.
The struck-out claims are now quotations, not inventions
Section 01 originally struck through three sentences I had written myself, and finished on a rhetorical flourish: “Not boosted, not supercharged, not armoured.” Two of the three are now wordings taken from a real UK greens page (source 11), and the rebuttal quotes the ASA’s own permitted sentence and names the verbs it rules out (source 9). The flourish is gone. The regulator says it better.
A claim I could not stand up got replaced with one I could
The first struck claim used to rest on “national diet survey after national diet survey has most adults sitting under the reference intake” for magnesium. I could not substantiate “most” at that strength. It now leads with the figure I can cite: 18% of adults aged 19 to 64 vitamin D deficient, 31% in winter, NDNS 2019 to 2023.
The hero photograph showed the wrong container
The copy says “pouch” three dozen times and the hero was a glass jar. Given that theme 1 is entirely about buyers reading the packaging, a hero that contradicts the packaging is not a small mismatch. It is now a photograph of a green resealable pouch, and the same shot is what the basket shows as a line-item thumbnail.
The review feed was too well behaved
Six reviews, each dispatching one anticipated objection in order, every reviewer from a different town, one negative review that resolved into praise for the refund policy. That is a demographic grid, not a review feed. There are now eight, with two towns and one duration repeating, one review raising a packaging fault the site had never mentioned, and a two-star that ends with a refund taking nine days and a chasing email.
The cancellation copy now names the law
It used to be a rhetorical run of negatives: no email, no phone call, no retention offer, no sad-face screen. It now says the thing that is actually load-bearing, from source 6: if you signed up online you can end it online, which from spring 2027 is a legal requirement rather than a favour.
This one did not change the design, and that is worth saying
Source 1 landed after the section order was set, and it confirmed it rather than altering it: heavy metals lead the certificate, above the claim assay, and plant-based powders are exactly the category the testing found worst. Research that agrees with you is still research. Pretending it caused a change would be the dishonest version.
Design tokens, and one documented component
Ten colours, three radii, four type roles, five motion rules. The radius scale is new: the build had seven arbitrary values between 12 and 26 pixels with sibling panels differing by two pixels for no reason, which is a scale nobody chose.
Colour
| Token | Hex | Used for | Measured |
|---|---|---|---|
| --color-bone | #FBF7F0 | Page | Forest on it: 11.55:1 |
| --color-bone2 | #F2EBDD | Recessed panels and bands | Forest on it: 10.2:1 |
| --color-forest | #1F3A2E | All body text, rules, dark bands | On bone: 11.55:1 |
| --color-forest2 | #16291F | The Steady Night band only | Bone/75 on it: 8.69:1 |
| --color-citrus | #D8F24E | Primary buttons, highlights | Forest on it: 9.82:1. Never carries muted text |
| --color-citrus2 | #C3DD35 | Underlines, ticker separators | On forest: 8.05:1 |
| --color-clay | #C8563C | Fills, rules, focus ring, chart bars | On bone: 4.05:1. Display type only |
| --color-clayink | #9A3E28 | Small terracotta text | On bone: 6.36:1 |
| --color-mute | #5A6B5E | Secondary body text | On bone: 5.32:1, on bone2: 4.79:1 |
| --color-chartgrey | #8A9689 | Chart segments only | 2.89:1 on bone, so never text |
Radius
| Token | Value | Rule |
|---|---|---|
| --radius-tile | 12px | Anything nested inside another panel: plan buttons, batch chips, assay tiles, basket thumbnails |
| --radius-card | 20px | Standalone panels and photographs |
| --radius-doc | 28px | The four table-bearing surfaces: the buy box, the ingredient table, the certificate, the comparison table |
| rounded-full | 999px | Every control that is a button or a chip |
Type
| Role | Face | Size | Metrics |
|---|---|---|---|
| Display | Bricolage Grotesque 800 | clamp(1.75rem, 3.8vw, 2.5rem) up to clamp(2.85rem, 7.4vw, 5.3rem) | -0.035em, line-height 0.92 |
| Body | Inter 400 | 15–16.5px | line-height 1.62 to 1.72 |
| Micro | Inter 600 | 11px | 0.14em tracking, uppercase |
| Numerals | Inter tabular | inherits | font-variant-numeric: tabular-nums on every table |
Motion
| Token | Value | Applied to |
|---|---|---|
| .spring | 200ms cubic-bezier(0.2, 1.25, 0.4, 1) | Every hover and state change |
| .press | translate(3px, 3px) | Button down state, shadow collapses to 1px |
| .drawer-in | 220ms | Basket and mobile menu |
| .creep | 38s linear infinite | The batch ticker |
| reduced motion | all of the above off | Animations removed, transforms neutralised, smooth scroll reset to auto |
Button
- Variants
- Primary (citrus fill, forest text, 6px offset shadow) · Secondary (bone fill, 2px forest rule, 4px shadow) · Dark (forest fill, citrus text, used only on light bands) · Quiet (underlined text, no box, used for Remove)
- States
- Rest · Hover, background to citrus over 160ms · Active, .press translates 3px and collapses the shadow to 1px · Selected, aria-pressed with a citrus “Selected” chip · Disabled, 40% opacity with the pointer cursor removed, used on the stepper at nine
- Sizes
- Default 44px minimum height. Chips 12px text with 10px vertical padding, still 44px of hit area. Icon-only buttons 44×44
- Accessibility
- Always a real <button type="button">. Focus ring inherits the global rule and flips to citrus inside .band-dark. Toggles carry aria-pressed, disclosures carry aria-expanded plus aria-controls. Icon-only buttons carry aria-label naming the object, not the icon. Every label starts with a verb
- Do not
- Put muted text on citrus. Use the offset shadow on more than one button in a section. Use a div with onClick
WCAG 2.1 AA audit
Twelve findings, twelve fixed. 2 Critical, 6 Major and 4 Minor. Ratios were computed rather than eyeballed, including the alpha-blended ones, and the full table with before and after values is in A11Y.md in the repository.
12
found
12
fixed
0
outstanding
The global focus ring is terracotta #C8563C. Against the forest #1F3A2E bands and the footer that measures 2.85:1, under the 3:1 floor. The footer alone holds 18 focusable links.
Fixed. Ring stays terracotta on light surfaces, where it is 4.05:1, and switches to citrus #D8F24E inside .band-dark, .bg-forest, .bg-forest2 and footer.
Before 2.85:1 → after 9.82:1
The basket drawer declared role=dialog aria-modal=true with no focus trap. Tab walked straight out into the page behind it, and on close focus was dropped on <body> instead of returning to the basket button.
Fixed. Tab and Shift+Tab now cycle within the panel, Escape closes, and the element that opened the drawer is refocused on close. The mobile menu was given the same treatment plus role=dialog and aria-controls.
Before no trap, no restore → after trapped and restored
A review card was filled citrus and ran a 14px body paragraph in muted green on it, at 4.52:1. Just over the floor, and against the site’s own stated colour rule.
Fixed. Citrus now only ever carries forest at full strength. The card’s body copy is forest on citrus.
Before 4.52:1 → after 9.82:1
The free-delivery progress bar and the five rating-distribution bars filled citrus #D8F24E or #C3DD35 on a bone track: 1.18:1 and 1.43:1. The fill was not distinguishable from the track.
Fixed. Both fills are now terracotta on bone, and each track carries a 60% forest border.
Before 1.18:1 → after 4.05:1 fill, 3.58:1 track border
The star rating put aria-label on a bare <span> with no role, so the label was not reliably exposed. It also drew four solid stars for a 4.4 average while the text beside it said 4.4.
Fixed. role="img" on the wrapper, and the fill is now clipped to n/5, so 4.4 draws four stars and two fifths.
Before may announce as nothing; graphic disagreed with the number → after announces “4.4 out of 5, from 1047 reviews”
Basket steppers were 32×32, the drawer and menu close buttons 36×36, and the ingredient-table reasoning toggles 28×28.
Fixed. Steppers and close buttons are 44×44. Reasoning toggles are 36×36 inside a 44px-tall row, and the filter chips and search field were raised to a 44px hit area.
Before 28–36px → after 44px on every standalone control. The in-row reasoning toggle is 36px inside a 52px row; inline text links are exempt
The mobile menu had no role=dialog, and its trigger had aria-expanded with no aria-controls. The batch picker was a bare div of buttons with no group name.
Fixed. role=dialog and aria-modal on the menu, aria-controls on the trigger, role=group plus aria-labelledby on the batch picker.
Before unnamed → after named and related
Adding to the basket changed the count and the totals silently. The quantity cap was enforced with no announcement at all.
Fixed. A visually hidden role=status announces what was added or that the nine-pouch cap was hit; the totals block is aria-live=polite; the certificate panel announces the batch swap.
Before silent → after announced
The ingredient search input had no programmatic link to the “Showing 12 of 32” live count.
Fixed. aria-describedby on the input pointing at the count.
Before unlinked → after linked
The sticky mobile buy bar stayed in the DOM when hidden and relied on per-button tabIndex. Any focusable child added later would have been reachable while off-screen.
Fixed. inert on the wrapper while hidden, alongside the existing aria-hidden.
Before tabIndex only → after inert
Card and thumbnail outlines were set at 15–40% forest, between 1.6:1 and 2.5:1, so the boundary between adjacent cards on bone was barely there.
Fixed. Raised to 60% forest.
Before 1.57:1 → after 3.58:1
The skip link only existed on the home page, so /notes had no way past the header and the batch ticker.
Fixed. Extracted to a component and used on every content route, including the two added in this pass.
Before 1 of 2 routes → after 4 of 4 routes
Also checked and passing without change: reduced motion, which was already handled properly rather than tokenistically; one h1 per route with no skipped levels; layout at 200% zoom; alt text on all eight photographs with the decorative SVGs marked aria-hidden; and the ingredient search, which is the only input on the site and already had a real label. The one thing I could not fully verify in this container is screen-reader announcement order, since there is no assistive technology installed here — that is a real limitation and it is worth saying so rather than claiming a clean NVDA pass.
Sources
All read on or before 3 August 2026. Links go to the page actually used, not to a homepage.
Protein Powders and Shakes Contain High Levels of Lead
Consumer Reports · 14 October 2025, updated 8 January 2026
23 powders and shakes tested, later extended to 28. More than two thirds carried more lead per serving than CR’s 0.5 µg threshold. Plant-based products averaged around nine times the lead of dairy-based ones. Worst single result 7.7 µg a serving.
https://www.consumerreports.org/lead/protein-powders-and-shakes-contain-high-levels-of-lead-a4206364640/
Healthline · updated 30 April 2026
$79 a month, $2.63 a serving on subscription. On the blends: “it’s impossible to know whether a given ingredient is present at a high enough dose to have a meaningful effect”. Taste described as “similar to a matcha taste”. Bloating attributed to inulin and probiotics.
https://www.healthline.com/nutrition/athletic-greens-review
Innerbody Research · updated 9 January 2026
$3.30 a serving one-off against $2.63 on subscription, versus $0.90 and $1.33 for two named competitors. “The blends of ingredients don’t have specific quantities attached to each individual addition.” Cites BBB complaints about difficulty cancelling. One tester reported “a bitter, onion-like aftertaste”.
https://www.innerbody.com/athletic-greens-review
Evident Health · read 3 August 2026
Scored 3.1/10. Advertises 91 ingredients but “hides the doses behind 6 proprietary sub-blends”. Heavy-metal testing is claimed but no certificate of analysis and no lab name is published. Value scored 0.3 out of 5.
https://www.getevident.co/supplements/greens-powders/huel-daily-greens
Food products (VAT Notice 701/14), paragraph 4.2
HM Revenue & Customs, GOV.UK · read 3 August 2026
“Dietary supplements of a kind not normally purchased and used as food are standard-rated. This includes: vitamin and mineral supplements of all kinds.” The build had a line in the basket saying the opposite.
https://www.gov.uk/guidance/food-products-and-vat-notice-70114
Subscriptions and the DMCC Act
Browne Jacobson, retail law roundup · April 2026
Regime expected to commence spring 2027. Consumers must be able to exit “in a straightforward way and without unnecessary hurdles”, and “where a consumer signed up online, they must be able to exit online”. CMA research: about £1.6bn a year is spent on subscriptions people do not want, across roughly 155 million active UK subscriptions.
https://www.brownejacobson.com/insights/retail-law-roundup-april-2026/subscriptions-and-dmcc-act
National Diet and Nutrition Survey 2019 to 2023: deficiencies and inequalities
MRC Epidemiology Unit, University of Cambridge · 12 June 2025
18% of adults aged 19 to 64 vitamin D deficient across the year, rising to 31% in winter. 23% of 11 to 18 year olds, 36% in winter. Urinary iodine down 25% in adults aged 19 to 64 between 2013 and 2023.
https://www.epi.ims.cam.ac.uk/blog/2025/06/12/ndns-2019-2023-dietary-deficiencies/
NHS · read 3 August 2026
“Everyone should consider taking a daily vitamin D supplement during the autumn and winter”, at 10 µg a day. The single most defensible line on a British greens label, and the reason D3 sits in the hero table.
https://www.nhs.uk/conditions/vitamins-and-minerals/vitamin-d/
Food supplements, COVID-19 and the immune system
ASA / CAP · 17 July 2020
The permitted wording is “[nutrient] contributes to the normal function of the immune system”. “Boosting”, “strengthening”, “stimulating” and “optimising” are all out, and “immunity” must not be substituted for “immune function”.
https://www.asa.org.uk/news/food-supplements-covid-19-and-the-immune-system.html
Advertising Standards Authority · 24 July 2024
Upheld against a mushroom supplement for unauthorised health claims and for containing an unauthorised novel food. Breaches of CAP Code rules 15.1, 15.1.1, 15.2, 15.6, 15.6.2, 15.7 and 1.10. A concrete example of what the category gets told off for.
https://www.asa.org.uk/rulings/person-s--unknown-g24-1248968-person-s--unknown.html
Rheal Superfoods · read 3 August 2026
£25 one-off, £20 on subscription, 30 servings of 5 g, eight named organic ingredients with no individual doses on the page. “Independently verified for quality and safety” with no certificate published. Headline claims include “Strengthens your immune system daily” and “Fills the nutritional gaps most modern diets miss”.
https://www.rhealsuperfoods.com/products/clean-greens
Are greens powders worth the hype?
Men’s Fitness, syndicated via AOL · 16 March 2026
The industry term for token inclusions is “pixie dusting”. “A proprietary blend lists all of the ingredients in the product, but groups them together… you have no clue exactly how much of each ingredient you are getting.” Prices quoted as high as $80 a month.
https://www.aol.com/articles/greens-powders-worth-hype-150222821.html
Green powders: a waste of money, or a simple way to get your daily veg?
AnandTech forums, public thread · posts dated 30 July 2019
Unpaid, unprompted consumer language. whm1974: “Waste of money, just buy and eat the veggies or turn them into a smoothy.” Mai72: “For $18 I get 31 servings. Cheap compared to other brands.” balloonshark: “I only bought it because it was on sale.”
https://forums.anandtech.com/threads/green-powders-a-waste-of-money-or-a-simple-way-to-get-your-daily-dose-of-veggies.2568192/
Wikipedia · read 3 August 2026
Category background. Claims of immune and chronic-disease benefit are noted alongside the observation that “research continues into the supplement’s long-term effects” and that the products “generally come without recommendations from dietary experts”.
https://en.wikipedia.org/wiki/Greens_powder
Steady is a fictional brand built as a portfolio piece. The company, its batch codes and its reviews are invented. The 14 sources above are real and were read while designing it, the regulatory wording is real, and the contrast ratios were computed from the hex values actually shipped.