Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Accessibility Laravel Package

artisanpack-ui/accessibility

Laravel package adding accessibility-focused UI helpers for ArtisanPack apps—components, utilities, and sensible defaults to improve keyboard navigation, ARIA labels, focus states, and screen reader support with minimal setup.

View on GitHub
Deep Wiki
Context7
2.3.0

This release joins the cross-package hooks standardization initiative. artisanpack-ui/hooks (^1.3) is now a hard dependency, and the color-contrast pipeline fires three filter hooks that let applications override the WCAG threshold, extend the Tailwind color map, and take a final say on the generated text color.

Added

  • New filter hook ap.accessibility.contrastThreshold(float $ratio, string $context). Fires inside WcagValidator::checkContrast() right before the ratio comparison, with the default WCAG threshold and a context string (aa, aa-large, aaa, aaa-large, non-text). Return a different float to bump every check globally (e.g. force AAA) without touching call sites.
  • New filter hook ap.accessibility.contrastColorMap(array $map). Fires the first time AccessibleColorGenerator loads its Tailwind name → hex map, allowing apps to register custom palette entries or replace the map entirely.
  • New filter hook ap.accessibility.textColorGenerated(string $color, string $bg, bool $tinted). Fires at every return path of AccessibleColorGenerator::generateAccessibleTextColor() (including cached results), giving apps an escape hatch to override the algorithm for specific backgrounds.

Changed

  • Added artisanpack-ui/hooks: ^1.3 as a required dependency.
2.2.0

This release introduces AI-powered accessibility tooling on top of artisanpack-ui/ai v1.0. The three new agents — content-level issue analysis, ARIA attribute suggestion, and plain-language contrast-failure explanation — are delivered with framework surfaces for Livewire, React, and Vue that ship inside this package, so extending framework support does not require any changes to [@artisanpack-ui](https://github.com/artisanpack-ui)/react or [@artisanpack-ui](https://github.com/artisanpack-ui)/vue.

Changed

  • BREAKING (support matrix): PHP minimum raised from ^8.2 to ^8.3 to match the artisanpack-ui/ai foundation dependency. Users staying on PHP 8.2 should pin to ^2.1.2.
  • BREAKING (support matrix): Laravel 11 support dropped. The illuminate/support constraint is now ^12.0|^13.0. All Laravel 11 versions (v11.0.0v11.54.0) are currently blocked by published security advisories with no unblocked release available, so the matrix cannot be honestly claimed to support Laravel 11. Users staying on Laravel 11 should pin to ^2.1.2.

Added

  • Three AI-powered accessibility agents built on top of artisanpack-ui/ai v1.0:
    • ContentAccessibilityAgent (a11y.content_analysis) — finds content-level issues (ambiguous link text, vague headings, undefined jargon) that static rules miss. Default model claude-sonnet-4-6.
    • AriaSuggestionAgent (a11y.aria_suggestion) — suggests ARIA roles, states, and properties for custom components from their markup and behavior description. Default model claude-sonnet-4-6.
    • ColorContrastExplanationAgent (a11y.contrast_explanation) — explains contrast failures in plain language and proposes accessible alternatives that preserve brand intent. Contrast math is computed locally; the model only reasons about the explanation and suggestions. Default model claude-haiku-4-5.
  • Framework trigger surfaces for each agent, all shipped inside this package so extending to React or Vue does not require any changes to [@artisanpack-ui](https://github.com/artisanpack-ui)/react or [@artisanpack-ui](https://github.com/artisanpack-ui)/vue:
    • Livewire components (a11y-ai-content-analysis, a11y-ai-aria-suggestion, a11y-ai-contrast-explanation).
    • React trigger components under resources/js/react/ with a barrel export in resources/js/react/index.ts.
    • Vue 3 SFC trigger components under resources/js/vue/.
  • JSON API endpoints wrapping each agent under /api/v1/a11y/ai/{content-analysis,aria-suggestion,contrast-explanation} for framework-agnostic callers.
  • Each feature is registered via A11yServiceProvider::aiFeatures() and honors its own toggle through artisanpack-ui/ai's FeatureRegistry — trigger UIs surface FeatureDisabledException as a friendly message when the toggle is off.
2.1.2

This release adds Laravel 13 support alongside the existing Laravel 11 and 12 compatibility, and modernizes the release pipeline so tagged versions publish to Packagist automatically.

Added

  • Added Laravel 13 support. The illuminate/support framework constraint now resolves against ^11.44.1|^12.0|^13.0. The Laravel 11 lower bound is 11.44.1 to exclude versions covered by published security advisories on the framework; users staying on Laravel 11 should already be on 11.44.1 or later. Laravel 13 is only selectable on PHP 8.3+ via Laravel's own constraint — no PHP-floor bump is required.
  • Added a CI matrix that runs the test suite against Laravel 11, 12, and 13 on every supported PHP version (8.2 for L11/12, 8.3+ for L13).
  • Added a dedicated .github/workflows/release.yml that triggers on v* tag pushes, runs the pre-release test suite, creates the GitHub Release with notes extracted from this changelog, and notifies the Packagist update-package API so the new version publishes without manual intervention.

Changed

  • Promoted illuminate/support from suggest to a hard require so the multi-version framework constraint is enforced at install time. The Laravel integration layer (service provider, facade, HTTP/API controllers) has always required illuminate/support at runtime.
  • Widened dev dependency constraints to cover the Laravel 13 toolchain: orchestra/testbench to ^9.0|^10.2|^11.0, pestphp/pest to ^3.8|^4.0, and pestphp/pest-plugin-laravel to ^3.1|^4.0. The lock file still resolves to the Laravel 12 toolchain for local development; the CI matrix overrides per-row to exercise the other framework versions.
  • Updated supported-versions notes in README.md and docs/guides/getting-started.md to reflect Laravel 11/12/13.
  • Removed Laravel 5.x manual-registration instructions from docs/guides/getting-started.md (auto-discovery is automatic on every supported Laravel version) and corrected the documented service-provider and facade class names to match the actual namespaces. The new manual-registration example uses AliasLoader::getInstance()->alias() from a service provider's register() method, which is the idiomatic approach in the streamlined Laravel 11+ app structure.
  • Removed the inline release job from .github/workflows/ci.yml and dropped its tag trigger; ci.yml now only fires on pushes to main and pull requests targeting main.
2.1.1

This release integrates the package with the core ArtisanPack UI package for a unified configuration structure.

Changed

  • Updated configuration namespace from accessibility.* to artisanpack.accessibility.* to align with the ArtisanPack UI ecosystem
  • Published config file path changed from config/accessibility.php to config/artisanpack/accessibility.php
  • Changed config publish tag from config to artisanpack-package-config

Added

  • Added mergeConfiguration() method in service provider to properly merge package defaults with user customizations

Migration notes

  • Update any references to config('accessibility.*') to use config('artisanpack.accessibility.*') instead
  • If you have a published config file at config/accessibility.php, move it to config/artisanpack/accessibility.php
2.1.0

This release focuses on developer experience improvements, including code style tooling, CI/CD enhancements, and documentation cleanup.

Added

  • Added Laravel Pint (v1.25+) as a dev dependency for code style checking
  • Added artisanpack-ui/code-style-pint (v1.0+) for standardized code style rules
  • Added Laravel Boost guidelines file (resources/boost/guidelines/core.blade.php) for AI-assisted development

Changed

  • Updated GitLab CI build job to use php:8.2-cli image for consistency with test and benchmark jobs
  • Updated AI guidelines documentation for improved clarity

Fixed

  • Fixed GitLab CI pipeline build failures caused by PHP 8.5 compatibility issues
  • Resolved Symfony HTTP Foundation security vulnerability (PKSA-365x-2zjk-pt47) by requiring symfony/http-foundation ^7.3.7

Removed

  • Removed all documentation references to the getToastDuration() function which was not implemented in the codebase
2.0.0

This is a major release with a redesigned core, an expanded plugin system, first‑class reporting, theming and palette generation features, and a new HTTP/Laravel integration layer. It includes breaking changes for plugin authors and anyone consuming internal classes that were reorganized.

Breaking changes

  • Plugin API overhauled: new contracts introduced under src/Plugins/Contracts (e.g., PluginInterface, PluginMetadata, Capability, Context, Report, ResultSet, AccessibilityRulePluginInterface, AnalysisToolPluginInterface, ColorFormatPluginInterface). Existing plugins must be updated to the new interfaces and the new ResultSet shape.
  • PluginManager refactored. Registration/lookup behavior has been unified and example plugins have been updated accordingly.
  • Core namespaces reorganized. Core functionality now lives under src/Core; Laravel-specific integration under src/Laravel. Update any imports that referenced moved classes.
  • Configuration structure updated. New config files config/accessibility.php and config/plugins.php were added; review and publish them if you use Laravel.

Added

  • Core analysis modules: AccessibilityScorer, PerceptualAnalyzer, ColorBlindnessSimulator, ReportGenerator, WcagValidator, constants and helpers.
  • Caching subsystem: ArrayCache, FileCache, NullCache, and CacheManager.
  • Palette generation suite: PaletteGenerator, ColorHarmony, and export formats (CssExporter, JsonExporter, ScssExporter, TailwindExporter) plus resources/tailwind-colors.php.
  • Theming utilities: ThemeGenerator, ThemeValidator, CssVariableParser.
  • Reporting platform: A11y report writers (HtmlWriter, JsonWriter, MarkdownWriter), ComplianceReporter, ComplianceMonitor, TrendAnalyzer, AccessManager, Dashboard, TeamManager, CertificateGenerator, AuditTrail model and services.
  • HTTP API and Laravel integration: routes (routes/api.php), controller (A11yApiController), form requests, Laravel service provider/facade, and a Blade view for certificates.
  • Events and listeners for auditing and cache instrumentation.
  • CLI commands: audit:colors and palette:generate (see docs/commands.md).
  • Plugin examples: ContrastRulePlugin, updated ColorFormatHexPlugin, and LinksAnalysisTool with plugin.json manifests.
  • Database: new enterprise tables migration (2025_11_09_000000_create_enterprise_tables.php) and model factories.
  • Documentation: extensive guides and reference under docs/ (API, plugins, palette generation, theming, performance, WCAG compliance, framework‑agnostic usage, etc.).
  • Tests: large expansion of unit/feature/performance tests to cover the new surface area.

Changed

  • Composer configuration updated; autoloading and package metadata refined.
  • CI configuration updated (.gitlab-ci.yml).
  • Example plugins and reporting components refined and stabilized.

Fixed

  • Minor fixes and refinements across example plugins and reporting (e.g., Dashboard/Team management flows).

Migration notes

  • Update custom plugins to implement the new contracts and return the new ResultSet structure.
  • If you referenced classes that moved into src/Core or src/Laravel, update imports accordingly.
  • For Laravel users: publish the new config files, register the package service provider if necessary, and run the new database migration.
  • Review the updated docs under docs/ for details and examples.
1.1.1
  • Added in a method to set the correct text color based on background for color contrast.
1.0.3
  • Fixed issue with the renaming process.
1.0.2
  • Changed the vendor name to ArtisanPack UI.
1.0.1
  • Removed unnecessary files from the published package.
1.0
  • Initial release
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor
spatie/laravel-javascript-views