Accessibility - v2.2.0
Accessibility Changelog
[Unreleased]
[2.2.0] - 2026-07-08
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/react or @artisanpack-ui/vue.
Changed
- BREAKING (support matrix): PHP minimum raised from
^8.2to^8.3to match theartisanpack-ui/aifoundation dependency. Users staying on PHP 8.2 should pin to^2.1.2. - BREAKING (support matrix): Laravel 11 support dropped. The
illuminate/supportconstraint is now^12.0|^13.0. All Laravel 11 versions (v11.0.0–v11.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/aiv1.0:ContentAccessibilityAgent(a11y.content_analysis) — finds content-level issues (ambiguous link text, vague headings, undefined jargon) that static rules miss. Default modelclaude-sonnet-4-6.AriaSuggestionAgent(a11y.aria_suggestion) — suggests ARIA roles, states, and properties for custom components from their markup and behavior description. Default modelclaude-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 modelclaude-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/reactor@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 inresources/js/react/index.ts. - Vue 3 SFC trigger components under
resources/js/vue/.
- Livewire components (
- 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 throughartisanpack-ui/ai'sFeatureRegistry— trigger UIs surfaceFeatureDisabledExceptionas a friendly message when the toggle is off.
[2.1.2] - 2026-06-08
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/supportframework constraint now resolves against^11.44.1|^12.0|^13.0. The Laravel 11 lower bound is11.44.1to exclude versions covered by published security advisories on the framework; users staying on Laravel 11 should already be on11.44.1or 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.ymlthat triggers onv*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/supportfromsuggestto a hardrequireso the multi-version framework constraint is enforced at install time. The Laravel integration layer (service provider, facade, HTTP/API controllers) has always requiredilluminate/supportat runtime. - Widened dev dependency constraints to cover the Laravel 13 toolchain:
orchestra/testbenchto^9.0|^10.2|^11.0,pestphp/pestto^3.8|^4.0, andpestphp/pest-plugin-laravelto^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.mdanddocs/guides/getting-started.mdto 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 usesAliasLoader::getInstance()->alias()from a service provider'sregister()method, which is the idiomatic approach in the streamlined Laravel 11+ app structure. - Removed the inline release job from
.github/workflows/ci.ymland dropped its tag trigger;ci.ymlnow only fires on pushes tomainand pull requests targetingmain.
[2.1.1] - 2026-01-09
This release integrates the package with the core ArtisanPack UI package for a unified configuration structure.
Changed
- Updated configuration namespace from
accessibility.*toartisanpack.accessibility.*to align with the ArtisanPack UI ecosystem - Published config file path changed from
config/accessibility.phptoconfig/artisanpack/accessibility.php - Changed config publish tag from
configtoartisanpack-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 useconfig('artisanpack.accessibility.*')instead - If you have a published config file at
config/accessibility.php, move it toconfig/artisanpack/accessibility.php
[2.1.0] - 2025-11-22
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] - 2025-11-10
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 newResultSetshape. - 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 undersrc/Laravel. Update any imports that referenced moved classes. - Configuration structure updated. New config files
config/accessibility.phpandconfig/plugins.phpwere 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, andCacheManager. - Palette generation suite:
PaletteGenerator,ColorHarmony, and export formats (CssExporter,JsonExporter,ScssExporter,TailwindExporter) plusresources/tailwind-colors.php. - Theming utilities:
ThemeGenerator,ThemeValidator,CssVariableParser. - Reporting platform: A11y report writers (
HtmlWriter,JsonWriter,MarkdownWriter),ComplianceReporter,ComplianceMonitor,TrendAnalyzer,AccessManager,Dashboard,TeamManager,CertificateGenerator,AuditTrailmodel 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:colorsandpalette:generate(see docs/commands.md). - Plugin examples:
ContrastRulePlugin, updatedColorFormatHexPlugin, andLinksAnalysisToolwithplugin.jsonmanifests. - 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
ResultSetstructure. - If you referenced classes that moved into
src/Coreorsrc/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 - July 1, 2025
- Added in a method to set the correct text color based on background for color contrast.
1.0.3 - May 14, 2025
- Fixed issue with the renaming process.
1.0.2 - May 14, 2025
- Changed the vendor name to ArtisanPack UI.
1.0.1 - April 20, 2025
- Removed unnecessary files from the published package.
1.0 - April 16, 2025
- Initial release