Button Accessible Name Auditor avatar

Button Accessible Name Auditor

Pricing

Pay per usage

Go to Apify Store
Button Accessible Name Auditor

Button Accessible Name Auditor

Audit one public page for buttons missing accessible names. Checks native buttons, button inputs, role=button controls, score, and accessibility fixes.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Sanskar Jaiswal

Sanskar Jaiswal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

Button Accessible Name Auditor checks one public web page for buttons and role="button" controls missing accessible names. It returns structured JSON for accessibility QA, SEO agency reports, launch checks, and scheduled template monitoring.

Use cases

  • Audit icon buttons, menu buttons, dialog controls, and calls to action before launch.
  • Add focused accessibility checks to site migration and CMS template QA.
  • Monitor high-value pages for regressions after design changes.
  • Feed button accessibility results into dashboards, QA workflows, and issue triage.

Input

FieldTypeRequiredDescription
startUrlstringYesPublic HTTP or HTTPS page URL to audit. Credentials and private network targets are rejected.
timeoutSecondsintegerNoRequest timeout for the page fetch. Default: 10, range: 3 to 30.
maxButtonsintegerNoMaximum buttons and unnamed buttons to include in the dataset item. Default: 50, range: 1 to 200.

Output

The actor pushes one dataset item per run.

FieldTypeDescription
inputUrlstringOriginal submitted URL.
normalizedInputUrlstringURL after adding a default scheme if needed.
finalUrlstringFinal URL after safe redirects.
statusinteger or nullHTTP status from the page fetch.
okbooleanTrue when the page was fetched and all detected buttons have accessible names.
checkedAtstringISO timestamp for the audit.
buttonCountintegerNumber of native buttons, button inputs, and role="button" controls checked.
namedCountintegerNumber of checked buttons with an accessible name.
unnamedButtonCountintegerNumber of checked buttons without an accessible name.
accessibleNameCoveragePercentintegerPercentage of checked buttons with accessible names.
buttonsarraySample of checked buttons with tag, type, id, class, role, accessible name signals, and status.
unnamedButtonsarraySample of buttons missing accessible names.
scoreintegerReadiness score from 0 to 100.
gradestringLetter grade from A to F.
issuesarrayHuman-readable findings.
recommendationsarrayActionable fixes.
errorstring or nullFetch or validation error when present.

Example input

{
"startUrl": "https://example.com/pricing",
"timeoutSeconds": 10,
"maxButtons": 50
}

Example output

{
"inputUrl": "https://example.com/pricing",
"normalizedInputUrl": "https://example.com/pricing",
"finalUrl": "https://example.com/pricing",
"status": 200,
"ok": false,
"checkedAt": "2026-07-18T00:00:00.000Z",
"buttonCount": 2,
"namedCount": 1,
"unnamedButtonCount": 1,
"accessibleNameCoveragePercent": 50,
"buttons": [
{
"tag": "button",
"type": "button",
"id": null,
"className": "icon-close",
"role": null,
"hasAriaLabel": false,
"hasAriaLabelledby": false,
"hasVisibleText": false,
"accessibleName": null,
"ok": false
}
],
"unnamedButtons": [],
"score": 80,
"grade": "B",
"issues": ["1 button(s) lack an accessible name"],
"recommendations": ["Add button text, aria-label, aria-labelledby, value, or alt text for icon/image buttons."],
"error": null
}

Security

  • Fetches only public HTTP and HTTPS URLs.
  • Rejects URL credentials.
  • Blocks localhost, private IPv4 ranges, link-local IPv4, loopback, private IPv6, and link-local IPv6 targets.
  • Resolves hostnames before fetching and blocks DNS results that point to private networks.
  • Revalidates redirects before following them.
  • Reads a bounded response body to avoid oversized page runs.

Pricing

Suggested pay-per-event pricing:

EventSuggested price
Actor start$0.005
Page audited$0.01

Typical one-page run cost: about $0.015 before Apify platform charges. Apify keeps its standard commission and the actor owner receives the remainder.

FAQ

Does this replace a full accessibility audit?

No. It checks one high-signal button-name issue on one page. Use it as a lightweight API check alongside broader accessibility testing.

Does it execute JavaScript or click buttons?

No. It fetches static HTML and parses buttons. It does not click, type, submit, or execute browser automation.

What counts as an accessible name?

The actor treats visible button text, aria-label, aria-labelledby, value, alt, and title as naming signals for this focused static check.

Can it crawl a whole site?

No. It audits one submitted page. Schedule multiple runs or pass pages through your own queue when site-wide coverage is needed.