UX heuristic analysis · Telecom and health

UHC.com: a UX heuristic analysis

For UnitedHealthcare’s digital product team

Download the PDF

uhc.com's plan finder and plan links say the wrong thing: an empty ZIP label and a link named for another plan

The Medicare plan finder's ZIP field has an empty label and fills itself from location: from Toronto it held 'M6H', a value its 5-digit pattern cannot accept. Its search has invalid ARIA and a Search button with no visible focus, and on phones a call bar covers it. On Shop for a plan, 'Mental health virtual therapy' is named 'View accident insurance'. Seen from Toronto, Canada.

Where to start

  1. Finding 5: The Medicare ZIP field has an empty label and pre-fills a value it cannot accept Medium
  2. Finding 3: On Shop for a plan, 'Mental health virtual therapy' is named 'View accident insurance' Medium
  3. Finding 7: On phones the Medicare call bar nests a phone link inside a button and covers the search Medium
  4. Finding 6: The Medicare page's 'How can we help you?' search has invalid ARIA and an unseen focus Medium
Findings by level
HighMediumLowBest practice
0512

The 8 findings

Findings about the whole site first, then each page in the order examined, the most severe first within each. The levels, high, medium, low, best practice, are explained on the method page.

Finding 1Low

Seven pages are 1446 px wide at 1440 px and move 6 px sideways

Where
Throughout
Seen at
Desktop
Effort to fix
Small
uhc.com at desktop size, the frame on what this finding is about: Seven pages are 1446 px wide at 1440 px and move 6 px sideways.
Desktop, 1440 px wide, taken 26 October 2026. The frame marks what the finding is about.

Observation

At 1440 px Find a doctor, Member sign-in, Pharmacy benefits, Claims, Contact us, Member forms and the accessibility statement are 1446 px wide, so they scroll 6 px sideways. The global header’s navigation (abyss-parcel) reaches 1446 px. Home, Shop for a plan and Medicare are 1440 px wide. Captures on 25 and 27 October measured the same.

Implication

A visitor who scrolls with a trackpad, or a mouse that scrolls sideways, moves the whole page 6 px to the side on every one of these pages.

Recommendation

Size the header’s navigation to the page (width: 100% in place of 100vw, or no extra margin), and check the seven page templates at 1440 px with a classic scrollbar shown and hidden.

Measured

  • Find a doctor and 6 other pages: 1446 px wide in a 1440 px viewport
  • Home, Shop and Medicare: 1440 px wide
  • Same on 25 and 27 October (fresh profile)

Finding 2Best practice

Most links tried on Shop and Medicare do not change when the pointer is on them

Where
Throughout
Seen at
Desktop
Effort to fix
Small
uhc.com at desktop size, the frame on what this finding is about: Most links tried on Shop and Medicare do not change when the pointer is on them.
Desktop, 1440 px wide, taken 26 October 2026. The frame marks what the finding is about.

Observation

At 1440 px, 8 of 9 links tried on Shop for a plan ('Medicare plans', 'Medicaid plans', 'Individual and family plans' among them), 6 of 8 on Medicare and 4 of 10 on Pharmacy benefits look the same with the pointer on them: no change of colour, background, underline, border, opacity or shadow.

Implication

People using a mouse get no sign that a card title or link is live before they click, and on pages full of blue headings and blue links they cannot tell which is which until they try.

Recommendation

Underline links on hover and focus, or darken them, on every page; the same rule in the shared link style covers the card titles on Shop for a plan and the plan links on Medicare.

Measured

  • No hover state: 8 of 9 links tried
  • No hover state: 6 of 8 links tried
  • No hover state: 4 of 10 links tried

Finding 3Medium

On Shop for a plan, 'Mental health virtual therapy' is named 'View accident insurance'

Where
Shop for a plan
Heuristic
Accessibility
Seen at
Desktop
Effort to fix
Small
WCAG 2.2
2.5.3 Label in Name (level A)
uhc.com at desktop size, the frame on what this finding is about: On Shop for a plan, 'Mental health virtual therapy' is named 'View accident insurance'.
Desktop, 1440 px wide, taken 26 October 2026. The frame marks what the finding is about.

Observation

On Shop for a plan at 1440 and 820 px the link 'Mental health virtual therapy', to the mind-your-health page, has aria-label 'View accident insurance', the name of the Accident insurance link. axe label-content-name-mismatch (serious, WCAG 2.5.3) fails on it. On Find a doctor at 390 px 'Open the app' is named 'Open the UHC app to find a provider'.

Implication

A screen reader user hears 'View accident insurance' twice and cannot reach mental health therapy by name, or opens therapy expecting accident cover. A voice control user who says 'click Mental health virtual therapy' or 'click Open the app' gets no match: neither name holds the words on screen.

Recommendation

Remove the aria-label from both links and let the visible text name them, or start each name with its visible words ('Mental health virtual therapy plans'). Check every card link on the page against its destination when copy changes; this one shares a name with the link after it.

Measured

  • 'Mental health virtual therapy' named 'View accident insurance'
  • axe label-content-name-mismatch: 1 element (serious)

Finding 4Medium

On Shop for a plan the header’s ‘Español’ link is 20 px tall, with a target within 12 px

Where
Shop for a plan
Heuristic
Accessibility
Seen at
Desktop
Effort to fix
Small
WCAG 2.2
2.5.8 Target Size (Minimum) (level AA)
uhc.com at desktop size, the frame on what this finding is about: On Shop for a plan the header’s ‘Español’ link is 20 px tall, with a target within 12 px.
Desktop, 1440 px wide, taken 26 October 2026. The frame marks what the finding is about.

Observation

At 1440 px the header link ‘Español’, the way to the Spanish-language site, is 50.4 × 20 px on Shop for a plan, under the 24 × 24 px minimum, with another target within 12 px of its centre. The capture of 25 October found the same on Home. On Medicare the same link is 24 px tall.

Implication

Someone with a tremor or limited pointer control can miss the one link to the site in their language, or open the target beside it instead.

Recommendation

Give the link 2 px of padding above and below so it is at least 24 px tall, in the header template so every page gets it, or keep 12 px clear around its centre.

Measured

  • 27 October, fresh profile: Shop ‘Español’ 50.4 × 20 px, target within 12 px
  • 25 October: Home ‘Español’ 50.4 × 20 px, target within 12 px
  • Medicare ‘Español’: 24 px tall

Finding 5Medium

The Medicare ZIP field has an empty label and pre-fills a value it cannot accept

Where
Medicare
Heuristic
Accessibility
Seen at
Phone
Effort to fix
Small
uhc.com at phone size, the frame on what this finding is about: The Medicare ZIP field has an empty label and pre-fills a value it cannot accept.
Phone, 390 px wide, taken 26 October 2026. The frame marks what the finding is about.

Observation

The 'Find a Medicare plan' field has a label element, but it is empty, so the field's only name is the placeholder 'Enter ZIP code', at all three sizes. It fills itself from a location cookie: on 26 October, from Toronto, it held 'M6H', a Canadian postal prefix its 5-digit numeric pattern cannot accept; in the 25 October capture it held '20782', and the placeholder was gone.

Implication

Once the field is filled, the screen shows a bare value with no label. A visitor can press View all plans for an area that is not theirs; Medicare plans differ by county, so the prices and doctors shown can be wrong.

Recommendation

Put 'ZIP code' in the empty label, as the home page's hero does. If a ZIP code is filled in from location, say so beside it ('Showing plans for 20782. Change'), and fill only a value the field accepts.

Measured

  • 25 Oct: ZIP field label empty; it arrived holding 20782
  • 26 Oct: empty label; field pre-filled 'M6H' from a location cookie

Finding 6Medium

The Medicare page's 'How can we help you?' search has invalid ARIA and an unseen focus

Where
Medicare
Heuristic
Accessibility
Seen at
Desktop
Effort to fix
Small
WCAG 2.2
2.4.7 Focus Visible (level AA)4.1.2 Name, Role, Value (level A)
uhc.com at desktop size, the frame on what this finding is about: The Medicare page's 'How can we help you?' search has invalid ARIA and an unseen focus.
Desktop, 1440 px wide, taken 26 October 2026. The frame marks what the finding is about.

Observation

On the Medicare page's 'How can we help you?' search, the text field has aria-expanded but no role, so it is a textbox, which does not allow it; the div around it has aria-expanded too. axe aria-allowed-attr (critical, WCAG 4.1.2) fails at all three sizes. The Search button shows no change when focused, at 820 and 390 px in the capture and at 1440 and 500 px on 26 October.

Implication

Screen readers may announce the field as collapsed or ignore the suggestions list, so a listener cannot tell that suggestions exist. A keyboard user on a tablet loses sight of focus when it reaches Search and cannot tell whether Enter will search.

Recommendation

Build the field as a combobox: role='combobox' on the input with aria-expanded and aria-controls there, and remove aria-expanded from the wrapping div. Give the Search button a 2 px focus outline with 3:1 contrast against the page, as the header's search has.

Measured

  • axe aria-allowed-attr: 2 elements (critical)
  • 26 Oct: textbox with aria-expanded; Search button shows no focus
  • Tab stop 14, Search: no focus indicator

Finding 7Medium

On phones the Medicare call bar nests a phone link inside a button and covers the search

Where
Medicare
Seen at
Phone
Effort to fix
Small
WCAG 2.2
4.1.2 Name, Role, Value (level A)
uhc.com at phone size, the frame on what this finding is about: On phones the Medicare call bar nests a phone link inside a button and covers the search.
Phone, 390 px wide, taken 26 October 2026. The frame marks what the finding is about.

Observation

On phones the fixed 'get help' bar at the foot of the Medicare page is a button wrapping a tel: link, both in the Tab order and both named with the phone number. axe nested-interactive (serious, WCAG 4.1.2) fails on it. At 500 × 667 px on 26 October the 46.5 px bar covered 41.7 px of the 'How can we help you?' field and 33.7 px of its Search button.

Implication

A screen reader user meets two controls with one name, one inside the other, and cannot tell which places the call. Calling is how many people choose a Medicare plan. While the bar covers the search, a tap meant for Search can start a call instead.

Recommendation

Make the bar one tel: link, named 'Call' with the number and TTY 711, with no button around it. Add bottom padding to the page equal to the bar's height, so the bar never covers the search or any other control.

Measured

  • Call bar: a button wrapping a tel: link, over the search
  • axe nested-interactive: 1 element (serious)
  • 26 Oct at 500 px: bar covers 41.7 px of the field and 33.7 px of Search

Finding 8Best practice

The sign-in page's Broker E-Store link has a testing tool's preview token

Where
Member sign-in
Seen at
Desktop
Effort to fix
Small

Observation

On the sign-in page the 'Sign in to Broker E-Store' link goes to uhone.com with 'at_preview_token=…', 'at_preview_index=1_1' and 'at_preview_listed_activities_only=true' in its address at all three sizes. These are Adobe Target's preview parameters, used to see a test variant before launch. The page's other sign-in links have clean addresses.

Implication

No harm was measured, since the broker site was not opened. But every broker who signs in from here may be shown a preview of a test, or skew that test's numbers, and the token, meant for staff, is published on a public page.

Recommendation

Replace the link with the plain sign-in address, https://www.uhone.com/broker/main/default.aspx?portalsignin=broker-individual-signin, and check the CMS for other links copied from a preview session (search the site's links for 'at_preview').

Measured

  • Broker sign-in link has an Adobe Target preview token

What was examined

  1. Home
  2. Shop for a plan
  3. Medicare
  4. Find a doctor
  5. Member sign-in
  6. Pharmacy benefits
  7. Claims: how to submit a claim
  8. Contact us
  9. Member forms
  10. Accessibility statement

No real users were observed. Only public pages were examined, signed out, on the date shown, at the sizes listed. A browser took the measurements; the numbers are in each finding.

Automated checks

Automated checks across the pages examined
Accessibility rules failed (axe)3 rules: 1 critical, 2 serious
Tap targets under 24 pixels3
Links that open a new tab0
Console errors on load2
The 3 rules, by impact, with the elements and pages each failed on
  1. aria-allowed-attr critical

    WCAG 4.1.2 Name, Role, Value (A) · 2 elements on 1 page: Medicare

  2. label-content-name-mismatch serious

    WCAG 2.5.3 Label in Name (A) · 6 elements on 6 pages: Home; Shop for a plan; Find a doctor; Claims: how to submit a claim; Member forms; Accessibility statement

  3. nested-interactive serious

    WCAG 4.1.2 Name, Role, Value (A) · 1 element on 1 page: Medicare

Counted by the engine on every page examined, at all three sizes, in headful Chrome. Console errors from refused or failed resources are not counted.