Testimonials Widget Widget
Show what your customers say in four layouts - card grid, one featured quote, a plain list or a slider that only moves when the visitor asks it to - with optional star ratings, photos or tidy initials avatars, and an honest note that the quotes come from you.
Live preview
Under the widget on your page: Powered by A2Z Tools
Embed code
<iframe src="https://a2z.tools/embed/w/testimonials-widget" title="Testimonials Widget by A2Z Tools" width="100%" height="670" style="border:0;width:100%" loading="lazy" allow="clipboard-write"></iframe>
A plain iframe. Works everywhere, including site builders that strip scripts. Adjust height if your content needs more room.
<div data-a2z-widget="testimonials-widget" data-height="670"></div> <script async src="https://a2z.tools/embed.js"></script>
Adds a small script (what it does) that sizes the widget to fit its content, loads it lazily and keeps it isolated from your page's CSS.
Works with
How it works
Each line is 'quote | name | role or company | rating | photo URL'; the last three are optional. Ratings from 1 to 5 are rounded to the nearest half star and drawn as five stars that are hidden from screen readers, which hear 'Rated 4.5 out of 5' instead. Photo URLs must be https; anything else, or an image that fails to load, falls back to initials (first and last word of the name, Unicode-aware, so 'Łukasz Żółć' becomes ŁŻ) on one of six tints chosen from the name, so a person keeps the same colour. Quotes are marked up as figure, blockquote and figcaption. In the slider, previous and next are real buttons with names, the position reads '2 of 5' and is announced politely only after a visitor moves it, left/right swipes and arrow keys work, and every slide shares one grid cell so the frame never jumps in height. Auto-rotation is off unless you set v_autoplay to 4-20 seconds; it never runs under prefers-reduced-motion, pauses on hover and stops for good when focus enters.
Method
- Line format: quote | name | role or company | rating (1-5, optional) | https photo URL (optional); at most 50 testimonials
- Rating shown = round(rating x 2) / 2; anything outside 1-5 or not a number is hidden; screen-reader text 'Rated r out of 5'
- Avatar: https image only (alt 'Photo of <name>', lazy, 44-56 px, no-referrer); else initials on tint = (hash of name mod 6) + 1
- Layouts: v_layout=grid|featured|list|slider; slider position = ((index + step) mod count + count) mod count
- Autoplay: off by default; v_autoplay=4..20 seconds; disabled by prefers-reduced-motion; hover pauses, focus stops until Play
Worked examples
Rating rounding
Inputs: Quote | Ana | CEO, Acme | 4.3
Result: Four and a half stars shown; screen readers hear 'Rated 4.5 out of 5'
round(4.3 x 2) / 2 = 9 / 2 = 4.5.
No photo
Inputs: Great service | Dr. Ana María López
Result: Initials avatar 'DL'
First letter of the first word and of the last word, punctuation ignored.
Slider with three quotes
Inputs: v_layout=slider; Next pressed once
Result: Position '2 of 3'; announced 'Testimonial 2 of 3, Bob'; Previous twice from there shows '3 of 3'
The slider wraps at both ends and never moves on its own.
Testimonials are the site owner's own content. A2Z Tools does not verify them; publishing them is subject to your local advertising and consumer-protection rules.
Limitations
- Adds no Review or AggregateRating structured data; self-published testimonials are not eligible for Google star snippets anyway.
- Does not import reviews from Google, Trustpilot or Facebook - you type or paste each quote.
- At most 50 testimonials per widget, and a quote cannot contain the | character.
- Photos must be hosted on https; the widget cannot upload or resize images.
Where publishers use it
- A wedding photographer's Squarespace home page with three featured client quotes
- A B2B SaaS landing page showing role and company under each quote, in a three-column grid
- A cleaning or trades business on Wix using the slider above its quote request form
- A course creator's sales page listing student results in the plain list layout
- A local restaurant's WordPress site repeating short quotes from its comment cards
Questions
Will Google show star ratings for these testimonials?
No. Google's review snippet rules make pages about a LocalBusiness or Organization ineligible for star review rich results when the business controls the reviews about itself - including reviews shown through an embedded widget. Testimonials you publish about yourself are exactly that, so this widget adds no Review or AggregateRating markup. Use the stars for visitors, not for search.
Does A2Z check that the testimonials are real?
No. The quotes, names, roles and ratings are whatever you type into the builder, and the widget says so under the quotes: 'provided by the site owner and have not been verified by A2Z Tools'. In the US, the FTC Endorsement Guides expect endorsements to reflect honest opinions of real customers and material connections (free products, payment, family) to be disclosed; similar consumer-protection rules apply in the UK, EU and India.
Why does the slider not move on its own?
Moving content that starts automatically and lasts more than five seconds needs a way to pause it (WCAG 2.2.2), and auto-rotating quotes are hard to read for many people. So rotation is opt-in: set v_autoplay between 4 and 20 seconds. A pause button appears, hovering pauses, keyboard focus inside stops rotation until Play is pressed, and visitors who ask their device to reduce motion never see it rotate.
What happens if a photo link breaks?
The image's error event swaps it for the initials avatar, so a 404, a blocked hot-link or a typo never leaves a broken-image icon. Only https photo addresses are accepted because the widget's content security policy blocks anything else; http and data: URLs go straight to initials.
Can a quote contain the pipe character?
Not safely - the pipe separates columns. A stray pipe pushes text into the next column; an extra one at the end is joined into the photo column and makes that URL invalid, which simply shows initials. Use a dash or a slash inside quotes.
Which layout should I pick?
Grid for 3-9 short quotes on a wide page (it falls to one column under about 480 px), featured for a single strong quote near a call to action, list for long quotes such as case-study excerpts, and slider when space is tight and visitors may want to browse.
How are star ratings made accessible?
The five star shapes are aria-hidden, and a visually hidden sentence such as 'Rated 4.5 out of 5.' sits next to them, so the value never relies on colour or shape alone. Half stars are drawn by clipping the filled star at 50%.
Sources
- Review snippet (Review, AggregateRating) structured data - self-serving reviews - Google Search Central . Pages using LocalBusiness or Organization markup are ineligible for star review features when the entity controls the reviews about itself, including via embedded widgets. Updated 2026-09-08; checked 2026-10-01.
- FTC's Endorsement Guides: What People Are Asking - US Federal Trade Commission . Endorsements must reflect honest opinions and experience; material connections must be disclosed clearly and conspicuously (2023 revision).
- Carousel (Slide Show or Image Rotator) Pattern - W3C WAI-ARIA Authoring Practices Guide . Rotation control, stop on hover and focus, named previous/next buttons, '3 of 10' as slide names.
- Understanding Success Criterion 2.2.2: Pause, Stop, Hide - W3C WCAG 2.2 . Auto-starting movement lasting over five seconds needs a pause, stop or hide mechanism.
Cite or recommend this tool
If you reference this tool in an article, course or documentation, these formats are ready to copy. They are optional - nothing is added to your site unless you paste it.
A2Z Tools Testimonials Widget https://a2z.tools/embed/testimonials-widget
<a href="https://a2z.tools/embed/testimonials-widget">A2Z Tools Testimonials Widget</a>
[A2Z Tools Testimonials Widget](https://a2z.tools/embed/testimonials-widget)
Testimonials Widget by A2Z Tools - https://a2z.tools/embed/testimonials-widget
Related widgets
-
Your average rating, review count and star breakdown bars, with a link to where the reviews live.
-
Accessible FAQ accordion with search, expand-all, numbering and a copy-as-text button.
-
Your own claims - family owned, free estimates, licensed - as clean badges, each marked self-declared.
-
An animated band of up to four headline numbers that count up once when they scroll into view.
-
Photo grid, masonry columns or a sideways strip with a keyboard-friendly lightbox and alt-text checks.
-
A vertical or sideways-scrolling timeline of dated milestones, with an optional Now marker.