UX heuristic analysis · Technology

Microsoft.com: a UX heuristic analysis

For Microsoft’s digital product team

Download the PDF

Microsoft's store pages open a sign-up dialog on load, and a Surface help link has the wrong name

Microsoft's 'Sign me up' dialog opened about 3 seconds after load on 5 of the 10 pages I tried, and at 390 px the cookie banner covers its Close button. On Surface help and support the 'Contact support' link is named 'View all topics', and axe found visible words missing from control names on 26 of 36 pages. Colour swatches on Surface accessories measure 12 × 12 px on phones, and the deals page's original prices measure 3.11:1. axe found 7 rules failing at 3 sizes. I read the pages from Toronto, Canada, and robots.txt kept me out of the cart and search results.

Where to start

  1. Finding 8: The Surface help page's 'Contact support' link is named 'View all topics' Medium
  2. Finding 5: A sign-up dialog opens on load, and at 390 px the cookie banner covers its Close button Medium
  3. Finding 1: Controls on 26 of 36 pages omit visible words, 'Shop now' and 'Buy' the purchase ones Medium
  4. Finding 7: Colour swatches on Surface accessories measure 12 × 12 px on tablets and phones Medium
  5. Finding 10: Original prices on the Microsoft Store deals page measure 3.11:1 Low
Findings by level
HighMediumLowBest practice
0652

The 13 findings

The findings about the whole site come first, then each page in the order I examined it, most severe first within each. The levels (high, medium, low, best practice) are explained on the method page.

Finding 1Medium

Controls on 26 of 36 pages omit visible words, 'Shop now' and 'Buy' the purchase ones

Where
Home
Heuristic
Accessibility
Seen at
Desktop
Effort to fix
Medium
WCAG 2.2
2.5.3 Label in Name (level A)
Microsoft at desktop size, the frame on what this finding is about: Controls on 26 of 36 pages omit visible words, 'Shop now' and 'Buy' the purchase ones.
Desktop, 1440 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

axe reports label-content-name-mismatch on 26 of the 36 pages, 7 elements on the home page at 1440 px, where 'Shop deals' is named 'Shop Microsoft Store Deals now' and the hero's 'Shop now' is named 'Shop Surface Laptop Ultra'. On Surface, 'Buy' is named 'Learn more about Surface accessories on Microsoft Store', and the French page's 'Acheter' does the same. Compare plans adds 27 with its dialog closed.

Implication

A voice-control user who says 'Shop now' or 'Buy' doesn't reach these controls, on the buttons that start a purchase. On Surface, a screen reader user hears 'Learn more' for a link the screen labels 'Buy', so the purchase link doesn't announce itself as one.

Recommendation

Start each name with the visible words, such as 'Shop now: Surface Laptop Ultra', or keep the visible text as the name and add the product with aria-describedby. Fix the shared card and hero components first, because the same pattern runs through the English and French pages.

Measured

  • 'Shop deals' is named 'Shop Microsoft Store Deals now'
  • axe label-content-name-mismatch: 7 elements (serious)
  • axe label-content-name-mismatch: 16 elements (serious)

Finding 2Low

The home page scrolls 32 px sideways at 1440 px

Where
Home
Seen at
Desktop
Effort to fix
Small
Microsoft at desktop size, the frame on what this finding is about: The home page scrolls 32 px sideways at 1440 px.
Desktop, 1440 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

At 1440 px the home page is 1472 px wide in a 1440 px viewport, and it scrolled 32 px sideways on the live check. The engine's measure points at a carousel, and neither html nor body clips it. The French home page has the same width.

Implication

A sideways swipe on a trackpad moves the whole page by 32 px, on the page most visitors see first.

Recommendation

Clip the carousel track at its wrapper with overflow: hidden or overflow: clip, and check the widths around 1440 px.

Measured

  • Home scrolls 32 px sideways at 1440 px
  • Page 1472 px wide in a 1440 px viewport

Finding 3Best practice

Canadian pages send Support and Accessibility to other countries' sites

Where
Home
Seen at
Desktop
Effort to fix
Small

Observation

The en-CA header's Support link goes to support.microsoft.com/en-us and the footer's Accessibility link to /en-us/accessibility. The fr-CA home page sends the same 2 links to fr-fr pages, France's French. Other links on the same pages, such as Surface, leave the locale out and arrive at en-CA.

Implication

A Canadian visitor reaches pages written for another country, in its spelling and with its examples.

Recommendation

Link to the en-CA and fr-CA versions, or leave the locale out so the server picks it, as the Surface links do.

Measured

  • Support and Accessibility links name en-us and fr-fr

Finding 4Best practice

Main buttons on Microsoft 365 open a new tab with no cue

Where
Microsoft 365
Seen at
Desktop
Effort to fix
Small
Microsoft at desktop size, the frame on what this finding is about: Main buttons on Microsoft 365 open a new tab with no cue.
Desktop, 1440 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

On Microsoft 365, 'Try for free' and 'See plans and pricing for Microsoft 365' open a new tab, with no icon and nothing in their names. The engine reports links like these on 34 of the 36 pages. Microsoft's accessibility page puts 'opens in a new tab' in its link labels.

Implication

A visitor who presses Back after choosing a plan finds it does nothing, because the new tab has no history.

Recommendation

Open plan and trial links in the same tab, or add the wording the accessibility page already uses.

Measured

  • 'Try for free' opens a new tab with no cue
  • Try for free: opens a new tab, no cue

Finding 5Medium

A sign-up dialog opens on load, and at 390 px the cookie banner covers its Close button

Where
Compare Microsoft 365 plans
Seen at
Phone
Effort to fix
Medium
Microsoft at phone size, the frame on what this finding is about: A sign-up dialog opens on load, and at 390 px the cookie banner covers its Close button.
Phone, 390 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

In a fresh profile a 'Sign me up' dialog opened about 3 seconds after load on 5 of the 10 pages I tried, including Compare plans, Surface Laptop Ultra for Business and shop all Surface. At 390 px the 328 px cookie banner covers the dialog's heading, email field and Close button, which is where focus lands. Closing the dialog leaves focus on the body.

Implication

A new visitor reaching a price or a product meets a marketing form first. At 390 px the visible part of the dialog offers Sign Up and shows no way to close it, and the focused control is out of sight. After closing, a keyboard user starts again from the top of the page.

Recommendation

Don't open the dialog while the cookie banner is showing, or replace it with an inline sign-up box on these pages. When it closes, return focus to the element that had it, or to the page's main heading.

Measured

  • Cookie banner, 328 px tall, covers the Close button

Finding 6Medium

An empty link on Surface Laptop Ultra takes keyboard focus and has no name

Where
Surface Laptop Ultra
Heuristic
Accessibility
Seen at
Desktop
Effort to fix
Small

Observation

In the page's footnotes, after 'Activation required', a link has no text and no label. Its href is '#', its target is _blank, it measures 0 × 19 px, and it stays in the Tab order. axe reports link-name at all 3 sizes. Its data-bi-ecn attribute reads 'Try Microsoft 365 for a month - Microsoft Store'.

Implication

A keyboard user lands on nothing visible, and a screen reader announces a link with no name. The footnote about the charge after 30 days doesn't offer the link its attribute describes.

Recommendation

Restore the link's text and its address to the Microsoft 365 trial, or remove the empty anchor from the footnote.

Measured

  • Empty footnote link: href '#', tabIndex 0
  • axe link-name: 1 element (serious)

Finding 7Medium

Colour swatches on Surface accessories measure 12 × 12 px on tablets and phones

Where
Surface accessories
Heuristic
Accessibility
Seen at
Phone
Effort to fix
Small
WCAG 2.2
2.5.8 Target Size (Minimum) (level AA)
Microsoft at phone size, the frame on what this finding is about: Colour swatches on Surface accessories measure 12 × 12 px on tablets and phones.
Phone, 390 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

The Surface accessories cards offer colour as buttons ('Gray', 'Violet', 'Ocean') of 12 × 12 px, 20 px apart. axe reports target-size on all 6 at 820 and 390 px. The sign-in page's 'Privacy and cookies' link, 20 px tall, fails the same rule at all 3 sizes.

Implication

A person with limited dexterity on a touch screen can miss a swatch or pick the colour next to it while choosing an accessory to buy.

Recommendation

Give each swatch a tap area of at least 24 × 24 px, keeping the 12 px dot inside it, and add the same height to the sign-in page's footer links.

Measured

  • Colour swatches: 12 × 12 px, 20 px apart
  • axe target-size: 6 elements (serious)
  • axe target-size: 1 element (serious)

Finding 8Medium

The Surface help page's 'Contact support' link is named 'View all topics'

Where
Surface support centre
Heuristic
Accessibility
Seen at
Desktop
Effort to fix
Small
WCAG 2.2
2.5.3 Label in Name (level A)4.1.2 Name, Role, Value (level A)
Microsoft at desktop size, the frame on what this finding is about: The Surface help page's 'Contact support' link is named 'View all topics'.
Desktop, 1440 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

On Surface help and support, the 'Contact support' link goes to support.microsoft.com/contactus and has the aria-label 'View all topics opens the Surface support webpage', copied from the link beside it. The 'Transfer data to a new PC' button has the label 'Set up your Surface populates the Search line.' axe reports label-content-name-mismatch at all 3 sizes.

Implication

A screen reader announces 2 links called 'View all topics' and never says 'Contact support', on the page a Surface owner opens when something's wrong. A voice-control user who says 'Contact support' doesn't reach the link. The transfer button is announced as a different task from the one it runs.

Recommendation

Remove both aria-labels so the visible text is the name, or give each control its own label starting with those words. Then read the other labels in the same list, because both errors repeat the neighbouring entry.

Measured

  • 'Contact support' is named 'View all topics…'
  • axe label-content-name-mismatch: 3 elements (serious)

Finding 9Low

A footnote link on Surface help has no mark that it's a link

Where
Surface support centre
Heuristic
Accessibility
Seen at
Desktop
Effort to fix
Small
WCAG 2.2
1.4.1 Use of Color (level A)
Microsoft at desktop size, the frame on what this finding is about: A footnote link on Surface help has no mark that it's a link.
Desktop, 1440 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

In the XBOX Cloud Gaming footnote on Surface help and support, one 'xbox.com/play' link is rgb(0, 0, 0) with no underline, the same colour and weight as its sentence. A second copy of the link is underlined.

Implication

A reader who doesn't hover over the address can't tell it's a link, in a footnote that says what the service needs.

Recommendation

Underline the link, as the second copy is.

Measured

  • Footnote link: same colour as its sentence, no underline
  • Links not set apart from text: 1, contrast 1.0:1

Finding 10Low

Original prices on the Microsoft Store deals page measure 3.11:1

Where
Store: deals
Heuristic
Accessibility
Seen at
Desktop
Effort to fix
Small
WCAG 2.2
1.4.3 Contrast (Minimum) (level AA)

Observation

On Deals, the original prices on 2 cards, CAD $2,599.99 and CAD $2,609.99, are 12 px #889399 on #FEFEFE, which measures 3.11:1. axe reports color-contrast on both at all 3 sizes.

Implication

The original price is the figure each saving on a deals page is measured from, and at this contrast it's hard to read for a person with low vision.

Recommendation

Darken the original price to at least 4.5:1, such as #6B747A (4.73:1), in the shared price component.

Measured

  • Original price: 3.11:1 at 12 px
  • axe color-contrast: 2 elements (serious)

Finding 11Low

The Store Assistant invitation covers the product on a phone

Where
Store product: Surface Laptop Ultra for Business
Seen at
Phone
Effort to fix
Small

Observation

On Surface Laptop Ultra for Business at 390 px, a 'Can we help you?' card with 'Chat now' and 'No thanks' opens within 9 seconds of load, over the product picture and below the open cookie banner. The same card, 243 × 254 px, covers a product on the home page at 1024 px.

Implication

On a first visit the banner and this card fill most of the screen, so the visitor has 2 boxes to clear before seeing the laptop, after the sign-up dialog on pages that open it.

Recommendation

Keep the round chat button the pages already show, and open the card only when a visitor asks for it.

Measured

  • 'Can we help you?' card open within 9 s at 390 px
  • Overlap: 243.2 × 208 px (50592.8 px²)

Finding 12Medium

Hidden Game Pass plan cards keep a focusable link at 820 and 390 px

Where
Xbox Game Pass
Heuristic
Accessibility
Seen at
Phone
Effort to fix
Small
WCAG 2.2
4.1.2 Name, Role, Value (level A)
Microsoft at phone size, the frame on what this finding is about: Hidden Game Pass plan cards keep a focusable link at 820 and 390 px.
Phone, 390 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

At 820 and 390 px the Game Pass plan carousel sets aria-hidden 'true' on 3 cards (ids 'standard', 'ultimate' and 'pc'), and each keeps a footnote link, '1, jump down to the legal section', in the Tab order. axe reports aria-hidden-focus on all 3. At 390 px, Tabs 37, 38 and 39 land on those links.

Implication

Keyboard focus reaches a link inside a plan card a screen reader has been told to ignore, on the page where a visitor compares Game Pass plans, so the link is announced with no plan around it.

Recommendation

Remove aria-hidden from the cards, or set inert on the off-screen cards so their links leave the Tab order until the card is shown.

Measured

  • Tabs 37 to 39 land inside aria-hidden cards
  • axe aria-hidden-focus: 3 elements (serious)

Finding 13Low

The Project Perception image doesn't load at 820 px on Microsoft Security

Where
Microsoft Security
Seen at
Tablet
Effort to fix
Small
Microsoft at tablet size, the frame on what this finding is about: The Project Perception image doesn't load at 820 px on Microsoft Security.
Tablet, 820 px wide, taken 30 October 2026. The frame marks what the finding is about.

Observation

At 820 × 1180 the Project Perception card's image has the address 'https://www.microsoft.com/en-ca/0.65,15,0&wid=2000…', which loads nothing, so the card shows its alt text over an empty panel. At 1440 px the same image loads from the Dynamic Media host at 1659 px. axe's color-contrast result on this card's heading comes from the missing image.

Implication

A tablet visitor sees an empty panel with a broken-image mark in the first product card on the page.

Recommendation

Fix the image's source for this width. The address holds only the part after a comma in the Dynamic Media parameters, so escape the commas as %2C in the srcset entry.

Measured

  • Project Perception image: naturalWidth 0 at 820 px
  • axe color-contrast: 1 element (serious)

What was examined

  1. Home
  2. Microsoft 365
  3. Compare Microsoft 365 plans
  4. Microsoft 365 for business
  5. OneNote app
  6. Microsoft Teams
  7. Windows
  8. Help me choose a PC
  9. Apps for Windows
  10. Surface
  11. Surface Laptop Ultra
  12. Surface accessories
  13. Surface support centre
  14. Store: shop all Surface
  15. Store: deals
  16. Store: Xbox controllers
  17. Store product: Surface Laptop Ultra for Business
  18. Store product: Xbox Series X
  19. Store: configure Surface Laptop
  20. Returns
  21. Order tracking
  22. Xbox Game Pass
  23. Azure
  24. Microsoft AI
  25. Microsoft Security
  26. Microsoft in education
  27. Microsoft products and apps
  28. Download Center
  29. Sign in
  30. Support
  31. Contact Microsoft
  32. Accessibility
  33. Privacy
  34. Choose your language
  35. Accueil (French home)
  36. Surface (French product)

I didn’t observe real users. I examined only public pages, signed out, on the date shown and at the sizes listed. A browser took the measurements, and each finding gives its numbers.

Automated checks

Automated checks across the pages examined
Accessibility rules failed (axe)7 rules: 1 critical, 6 serious
Tap targets under 24 pixels24
Links that open a new tab411
Console errors on load53
The 7 rules, by impact, with the elements and pages each failed on
  1. button-name critical

    WCAG 4.1.2 Name, Role, Value (A) · 1 element on 1 page: Xbox Game Pass

    button-name: not counted against the level, because The one element is the Game Pass page’s Xbox menu button at 820 and 390 px. The saved accessibility tree names it “XBOX ” (captures/pages/game-pass/tablet/aria.yml and mobile/aria.yml), so it has a name; the image inside it is not what names it.

  2. label-content-name-mismatch serious

    WCAG 2.5.3 Label in Name (A) · 121 elements on 26 pages: Home; Microsoft 365; Microsoft 365 for business; OneNote app; Microsoft Teams; Apps for Windows; Surface; Surface Laptop Ultra; Surface accessories; Surface support centre; Store: shop all Surface; Store: deals; Store: Xbox controllers; Store product: Surface Laptop Ultra for Business; Store product: Xbox Series X; Store: configure Surface Laptop; Returns; Microsoft AI; Microsoft Security; Microsoft in education; Microsoft products and apps; Support; Contact Microsoft; Accessibility; Accueil (French home); Surface (French product)

  3. target-size serious

    WCAG 2.5.8 Target Size (Minimum) (AA) · 7 elements on 2 pages: Surface accessories; Sign in

  4. aria-hidden-focus serious

    WCAG 4.1.2 Name, Role, Value (A) · 3 elements on 1 page: Xbox Game Pass

  5. color-contrast serious

    WCAG 1.4.3 Contrast (Minimum) (AA) · 3 elements on 2 pages: Store: deals; Microsoft Security

    color-contrast: not counted against the level, because 3 elements. The 2 original prices on the Microsoft Store deals page (12 px #889399 on #FEFEFE, 3.11:1) are published in f5, a low finding because deals isn’t a primary page. The third is the Project Perception card’s h3 on the security page at 820 px, whose white text is drawn over the image that doesn’t load; f10 gives the cause.

  6. link-name serious

    WCAG 2.4.4 Link Purpose (In Context) (A); WCAG 4.1.2 Name, Role, Value (A) · 1 element on 1 page: Surface Laptop Ultra

  7. scrollable-region-focusable serious

    WCAG 2.1.1 Keyboard (A); WCAG 2.1.3 Keyboard (No Exception) (AAA) · 1 element on 1 page: Contact Microsoft

The engine counted these on every page I examined, at all three sizes.