Title: TET Accessibility for WooCommerce
Author: tetphilosopher1
Published: <strong>July 28, 2026</strong>
Last modified: July 28, 2026

---

Search plugins

![](https://ps.w.org/tet-accessibility-for-woocommerce/assets/banner-772x250.png?
rev=3626457)

![](https://ps.w.org/tet-accessibility-for-woocommerce/assets/icon-256x256.png?rev
=3626457)

# TET Accessibility for WooCommerce

 By [tetphilosopher1](https://profiles.wordpress.org/tetphilosopher1/)

[Download](https://downloads.wordpress.org/plugin/tet-accessibility-for-woocommerce.0.1.6.zip)

 * [Details](https://wordpress.org/plugins/tet-accessibility-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/tet-accessibility-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/tet-accessibility-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/tet-accessibility-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/tet-accessibility-for-woocommerce/)

## Description

General accessibility checkers look at your whole site and give you a long list 
dominated by your blog. This one looks at the five pages that decide whether a disabled
customer can actually spend money with you: the shop archive, a product page, the
cart, the checkout and the account area.

It fetches each page the way a visitor would, reads the HTML your theme and extensions
really produced, and reports what would stop somebody using a screen reader from
finishing an order.

**What it checks**

 * Product images with no alt attribute, and alt text that is really a file name
 * Star ratings that convey the score visually only
 * Add to cart buttons that all announce the same name on an archive
 * Quantity fields and variation dropdowns with no label
 * Icon-only links and buttons with no accessible name
 * Checkout and account fields with no label, or labelled by a placeholder alone
 * Required markers with no text equivalent
 * Notice containers that are not live regions, so validation errors are never announced
 * Checkout fields missing autocomplete attributes
 * Skipped heading levels and missing h1
 * Missing page language
 * Duplicate element ids, a common cause of broken label associations
 * Cart and order tables with no header cells
 * Link text such as “read more” that says nothing on its own

**What you get**

 * A severity breakdown across your whole buying journey
 * Plain-English guidance on every issue, written for a shop owner rather than an
   auditor
 * A dismissal log that records who dismissed what, when, and why
 * CSV export of every open and dismissed issue, with WCAG references – useful evidence
   for an agency handover or an internal review

**Honest limits**

Automated testing catches roughly a third of WCAG problems. This plugin reads server-
rendered HTML, so it cannot judge colour contrast after CSS is applied, keyboard
focus order, focus traps in modals, or whether your alt text is accurate. A clean
scan is a floor, not a certificate. Test with a keyboard and a screen reader before
claiming conformance, and do not treat any tool – this one included – as proof of
legal compliance.

This plugin does not add an accessibility overlay or a toolbar widget. Overlays 
have a poor record: they are opposed by major disability organisations, and sites
using them have still been sued. This plugin only tells you what to fix in your 
own markup.

### External Services

Scanning, the issue list, the dismissal log and the CSV export all run entirely 
on your own server and require no account.

The optional “Suggest a fix” button connects to the TET Accessibility API, operated
by TET (https://tetphilosopher.com/a11y/), to produce an AI-written explanation 
of how to fix one specific issue.

Data sent when you press that button, and only then:

 * The rule that fired and its WCAG reference
 * The description of the issue
 * The HTML snippet already shown to you on screen
 * The page type (shop, product, cart, checkout or account)
 * Your site locale
 * Your site address, so the service can apply the site limit on your plan
 * Your API key, for authentication

When you request a free key, your email address and your site URL are sent.

Separately, once an API key is saved, the settings screen asks the service how many
suggestions remain on your plan. Only your API key is sent, and the answer is cached
for one hour. Remove the key to stop this.

No customer data, order data, post content or user information is ever sent. No 
issue data or page content leaves your server unless you press “Suggest a fix”.

 * Terms of service: https://tetphilosopher.com/a11y/terms.html
 * Privacy policy: https://tetphilosopher.com/a11y/privacy.html

## Screenshots

[⌊Accessibility overview with severity breakdown and the pages checked⌉⌊Accessibility
overview with severity breakdown and the pages checked⌉[

Accessibility overview with severity breakdown and the pages checked

[⌊Issue list with guidance and the dismissal log⌉⌊Issue list with guidance and the
dismissal log⌉[

Issue list with guidance and the dismissal log

[⌊Settings screen with the optional API key⌉⌊Settings screen with the optional API
key⌉[

Settings screen with the optional API key

## Installation

 1. Install and activate the plugin. WooCommerce must be active.
 2. Open **Accessibility > Overview** and press **Scan my store**.
 3. Review the findings under **Accessibility > Issues**.

An API key is optional and only needed for AI fix suggestions. Request a free one
from **Accessibility > Settings**.

## FAQ

### Does this make my store accessible on its own?

No. It finds problems and explains them. You or your developer still make the changes.
Any product that claims to make a site compliant automatically is overselling.

### Does it change my storefront?

No. It only reads pages. Nothing is added to your front end and no markup is modified.

### Why does the cart page have items in it during a scan?

Cart and checkout render as empty for an anonymous visitor, so there would be nothing
to check. During a scan the plugin places one product in the cart for that single
request. Nothing is saved, no order is created and your real cart is untouched.

### Will this slow my site down?

No. Scans run only when you press the button, and each page is fetched once.

### Do I need an account?

No. Everything except AI fix suggestions works without one.

### Which WCAG version does it test against?

WCAG 2.1 level AA. Where a criterion changed in WCAG 2.2 the guidance says so.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“TET Accessibility for WooCommerce” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ tetphilosopher1 ](https://profiles.wordpress.org/tetphilosopher1/)

[Translate “TET Accessibility for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/tet-accessibility-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/tet-accessibility-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/tet-accessibility-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/tet-accessibility-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/tet-accessibility-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.1.6

 * Plugin URI now points at the plugin’s product page, which had not been published
   when the header was written.

#### 0.1.5

 * Plugin Check now reports zero errors and zero warnings.

#### 0.1.4

 * Cleared every Plugin Check warning: unpacked the prepared-statement arguments
   and moved the sniff suppressions to where they actually apply, each with a written
   justification.

#### 0.1.3

 * Service address restored to tetphilosopher.com now that the API is served from
   the same domain.

#### 0.1.2

 * The service address can now be set with the TETACC_API_ENDPOINT constant or the
   tetacc_api_endpoint filter, so a staging site can point somewhere else.

#### 0.1.1

 * Ignore anything a server prints before the doctype. Hosts with display_errors
   switched on were causing false reports of a missing page language and a missing
   h1 on every page.

#### 0.1.0

 * Initial release

## Meta

 *  Version **0.1.6**
 *  Last updated **24 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [a11y](https://wordpress.org/plugins/tags/a11y/)[accessibility](https://wordpress.org/plugins/tags/accessibility/)
   [checkout](https://wordpress.org/plugins/tags/checkout/)[wcag](https://wordpress.org/plugins/tags/wcag/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/tet-accessibility-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/tet-accessibility-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/tet-accessibility-for-woocommerce/reviews/)

## Contributors

 *   [ tetphilosopher1 ](https://profiles.wordpress.org/tetphilosopher1/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/tet-accessibility-for-woocommerce/)