Star ratings built from Unicode characters are readable, portable and invisible to screen readers unless you add the number.
The short version
Start here if you only have one minute. The full guide below explains each point.
Use the matched pair
Filled and hollow stars from the same block.
Always show the number
Stars alone are meaningless to a screen reader.
Round, do not fake halves
No half star matches the standard pair.
01
The filled and hollow pair
The convention uses two characters: a filled star for earned points and a hollow one for the rest. In Unicode names these are BLACK STAR and WHITE STAR, where black means filled.
They are designed as a pair and share proportions, so a row of five lines up cleanly. Mixing stars from different blocks breaks that.
- ★ black star, U+2605, filled
- ☆ white star, U+2606, hollow
- Both encoded in Unicode 1.1, 1993
02
Half stars are the hard part
There is no half star in the same design family. The nearest characters come from other blocks and do not match in weight or size.
The practical answer is to round to the nearest whole star and print the exact number beside it. That is more honest than a mismatched glyph.
03
Always publish the number
A screen reader announces five star characters, not four out of five. Without a number, the rating is meaningless to anyone not looking at it.
The number also removes ambiguity for sighted readers, since a hollow star and a missing star look similar at small sizes.
✦Never let stars be the only carrier of a rating. Print the value as text: 4.2 out of 5, from 318 reviews.
04
Marking up a rating
On the web, a rating should be marked up so search engines can read it. The AggregateRating type carries the value, the scale and the count.
That markup is what produces a rating in search results. The characters themselves are decoration; the structured data is the part machines read.
05
Where the characters fail
Star characters take your text colour, which is usually what you want, but it means they cannot be gold unless you style them.
In an email, a spreadsheet export or a PDF, styling may not survive. Test the final artefact rather than the editor.
06
A pattern that works everywhere
Five characters, rounded to the nearest whole, followed by the exact value and the sample size in plain text.
It reads correctly on screen, in an export, aloud, and in a plain-text email. Nothing more elaborate reliably does all four.
Rating patterns compared
The same 4.2 rating shown four ways, scored on whether it survives being read aloud and exported.
| Pattern | Read aloud correctly | Survives export |
|---|---|---|
| ★★★★☆ alone | No | Yes |
| ★★★★☆ 4.2/5 | Yes | Yes |
| Gold styled stars alone | No | Not reliably |
| 4.2 out of 5 in text | Yes | Yes |
Only the patterns that include the number read correctly aloud. That is the single change that makes a star rating accessible.
07
Copy the symbols discussed in this guide
This guide explains the topic. Use star symbols for the main copyable set, compare it with check symbols, and browse sparkle symbols for another useful angle. Each collection includes searchable Unicode names and HTML references.
08
Questions, answered
Is there a half star character in Unicode?+
Not one that matches the standard filled and hollow pair. The closest options come from other blocks and differ in weight and size.
Do star characters work for accessibility?+
Only alongside a number. A screen reader announces the characters, not the rating, so the value must also appear as text.
Why are they called black and white stars?+
In Unicode names, black means filled and white means hollow. Neither refers to the colour, which comes from your text styling.
09
Sources and review notes
Recommendations were checked against published platform, Unicode and accessibility guidance. This is a standards review, not a claim of testing every screen reader, app or device combination.
