{"_id":"@a11y-oracle/playwright-plugin","_rev":"10-54280bda00ac272933623b5c9c0d916a","name":"@a11y-oracle/playwright-plugin","dist-tags":{"latest":"1.3.2"},"versions":{"1.0.0":{"name":"@a11y-oracle/playwright-plugin","version":"1.0.0","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.0.0","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"de56d0c1b9fdf694e18ad11a271afdcd47aa5def","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.0.0.tgz","fileCount":11,"integrity":"sha512-5lwC2IuVTdKJr28/EZYkFO4pXm+dkJojxmnnzLQkMD4mC8Xpk3jNDqN7HU+JgcAr8b7/A2RYAMZghHrkL8jTSw==","signatures":[{"sig":"MEUCIQCmBljWIuOij3rOYJTswEwfOjAR51+N93wpk6rkfKhOtwIgVNC3C92tR4OSVoHbMIk4azeIHdDjYJj+vUdV2m1zuNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"04ad8c1a2a9a6335892d5c992fcfa209e6a7bb6f","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.0.0_1772652309685_0.1874792649433139","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@a11y-oracle/playwright-plugin","version":"1.1.0","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.1.0","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"511deceb31fee6ecb68882735539fe9eef4b0fa2","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.1.0.tgz","fileCount":11,"integrity":"sha512-5FF0N/Ll+RyxipFMDlD4GB5lghj++ac7a8eQBVfciIGUX7kvwpU+18OF17D4xdkWSa4Tyrmghz4b7JQsFuT4UQ==","signatures":[{"sig":"MEUCIBXBq1Qf4za55EVrzxwRy1z2LUsq4ogKrGoSpVgYsrW3AiEAiMnevhDcz1ltFtLbGPpUU6BUGH/lVtQzXq2j97Axen4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"47a95777878b177bbe3fc88cb760a2b295296555","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.1.0_1772686079887_0.422914070191885","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@a11y-oracle/playwright-plugin","version":"1.1.1","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.1.1","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"831e18ed9921d8862b1e15e742d935ea702ed77c","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.1.1.tgz","fileCount":11,"integrity":"sha512-fO7rNtnKJNhO0wyVSUswDQRK6D70z3MS5OFHrFu0NLHzPsRPRFWMIppUI1OnkEskRDOV85HIq654lM6G2qjBqQ==","signatures":[{"sig":"MEUCIFFEzOCgpVE+Nv0FYhUU5wcybnvcgKAS/ClSFXylwVnFAiEAwSMKjQJC4C+GGDg5R3Fysas0hIFWxnsjx9blByya8/8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"555a54f42e89930cf78efd3b4d47055f8a9ca62e","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.1.1_1772690064143_0.6446072648251373","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@a11y-oracle/playwright-plugin","version":"1.1.2","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.1.2","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"bd2ad91c528ea15afe861114e62229364aa23154","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.1.2.tgz","fileCount":11,"integrity":"sha512-8ZTIsPlhLor1l7ze2cD47kW44QRhCxJhW1KEdAgbxUzkVLzBV8mzUkGVXaZ/thHlGFNBuS1Utl426KGuvbJbrQ==","signatures":[{"sig":"MEYCIQC6mjpldIgdARAOwcamTa5THo2xd2fr+BfaOXaWWwjKBAIhAKpjunSOFwtzjBc9YQcffckiKnm8hqzIDYz/yUakQ1lP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"0e3e6b7fb933fe4ec494e85abe5c056eff06eaef","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.1.2_1772725938194_0.2937187430732451","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@a11y-oracle/playwright-plugin","version":"1.1.3","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.1.3","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"753f39050d67ebffab5a26c41b5d9066606537a0","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.1.3.tgz","fileCount":11,"integrity":"sha512-ylZV8EQXnUSeE65EKIMFmeAo+/aonhUSf+JvdnIdmPHSSeCzp9ZxG7XvtD/3xh/yUQPTy/LbmkatrVqzqpC60Q==","signatures":[{"sig":"MEQCIDz4KT+HFd+ZBO7tUsypJncmv1DFSLAXjsd/sbCXFvi3AiAmp9h7Ky4ytUD8HGAYiMGYnPlYqoDZz9cBZ9YCqg/XwA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"3fb17cb54b310cb99259d6b25de170f2a09c22f9","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.1.3_1772729086103_0.45220120015260923","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@a11y-oracle/playwright-plugin","version":"1.1.4","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.1.4","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"9321dd10b5e37acc4c22aadfc25ee584ba66bf6a","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.1.4.tgz","fileCount":11,"integrity":"sha512-5wzktkpd3Qi4Pfw+aO01MZ8V8EVnpEliRXROakdV0x/z7IG/Lrt1zyumMDwiXuBaZMzM31LvjQ8Qj7aGJWqg/A==","signatures":[{"sig":"MEQCICg//fx8zY4vTeuFL4cZ/kLzpedMXYVeVj0OyDDpdAkZAiAJzz0qKFmDc2sczuBuWbqKqPnsnBCt7rK7CZNBIcpJqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"2e2f62c8fd8a54c1bb0f9b709647ff4fe8557c27","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.1.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.1.4_1772745612545_0.7690836888022352","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@a11y-oracle/playwright-plugin","version":"1.2.0","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.2.0","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"c3da26072e14bb66c90b669a1085d7a54a7d26e6","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.2.0.tgz","fileCount":11,"integrity":"sha512-subdSUXuvCqy9SyaCTWrXvgeiPowQ/HjJIUv0cofTGx5rqqvUavQpyJkCjQvmxDDUHPpHOmXtV63s0u6rhs/Vg==","signatures":[{"sig":"MEYCIQCDvrDVMt5mHBoE/re1/JWJChtpEP5TOzbz9KwGb/4m8wIhALBEH1sPY17AvSfxuUtzzZHaZ8u9GMWQZERut914z3Qo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"43adb7fc2be7245cbb136e07b24200d68cba1744","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.2.0_1772753725217_0.9764840837802669","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@a11y-oracle/playwright-plugin","version":"1.3.0","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.3.0","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"bbacba9f9828711e171eaac889963c21f3c3d8aa","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.3.0.tgz","fileCount":11,"integrity":"sha512-bv/85rfPPip1rhJJfTYeV3o2tFi2RkGp4no/Lh1CQOEv4SN6bJMh53qEECEwfFdBNL5JOPP9ZVrhktx3mnP4Dg==","signatures":[{"sig":"MEUCICrXAdZNTiVDoihnHxUG+QIo/tTnPYBdtIM47msSlsCXAiEAs11YuraGKVUP9bioYIjDfyIziyO3m3TGSSXpamMXvJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"4295fc44cee8a657989d667355836590231cf754","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.3.0_1772769827939_0.7233717608579531","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@a11y-oracle/playwright-plugin","version":"1.3.1","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"author":{"name":"a11y-oracle"},"license":"MIT","_id":"@a11y-oracle/playwright-plugin@1.3.1","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"dist":{"shasum":"ed71facefdda8fcae04e8b686f5fab0d66c58b12","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.3.1.tgz","fileCount":11,"integrity":"sha512-dr9Q9eu07jMqU8VM12X3Hzbfp7qEKZ/cW1IWrdOGlXBH6PmwsSBogf4jSC3HFOZQR/0p5ewkKUK0OoZl8NzWMg==","signatures":[{"sig":"MEQCICmaXMJo8dXIM3qRGfGIlbSd2R2WpJmUSwKymvB9FSrHAiALbUm4sXlYFm/xTsc6I2HCJOG6zKwyIRyPutrFgfEZ1A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./package.json":"./package.json"},"gitHead":"1cdf8cb41af6392ea299d37eed4bf536788a802f","_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"repository":{"url":"git+https://github.com/a11y-oracle/a11y-oracle.git","type":"git","directory":"libs/playwright-plugin"},"_npmVersion":"11.6.0","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","directories":{},"_nodeVersion":"24.10.0","dependencies":{"tslib":"^2.3.0","@a11y-oracle/core-engine":"1.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@playwright/test":">=1.40.0"},"_npmOperationalInternal":{"tmp":"tmp/playwright-plugin_1.3.1_1773187241705_0.10151786637851434","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@a11y-oracle/playwright-plugin","version":"1.3.2","description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","license":"MIT","author":{"name":"a11y-oracle"},"repository":{"type":"git","url":"git+https://github.com/a11y-oracle/a11y-oracle.git","directory":"libs/playwright-plugin"},"bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"publishConfig":{"access":"public"},"type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{"./package.json":"./package.json",".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"peerDependencies":{"@playwright/test":">=1.40.0"},"dependencies":{"@a11y-oracle/core-engine":"1.3.2","tslib":"^2.3.0"},"_id":"@a11y-oracle/playwright-plugin@1.3.2","gitHead":"58b2a6611a5150328c96c3d8695e0b14bc5d2d27","_nodeVersion":"24.10.0","_npmVersion":"11.6.0","dist":{"integrity":"sha512-cP0D5LYltWp1WJ6UpiqQwfCSnQqSoSFLWUXscfu5Bi+cNYyyZph/5UuNul1/Yc6iG239OWZ32io3Sz0lI00x/g==","shasum":"9538933a0086fcda453b50bdb43840c714845145","tarball":"https://registry.npmjs.org/@a11y-oracle/playwright-plugin/-/playwright-plugin-1.3.2.tgz","fileCount":11,"unpackedSize":35693,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDOWfA9mFD9y5MfGWGdy9XnudIydtDvlexg3Mly5uK6mAIgdtchlDdG/v9Ty71UEgVazNaSlhFWVOSWKyhDS1eGYwU="}]},"_npmUser":{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"},"directories":{},"maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/playwright-plugin_1.3.2_1773294442398_0.49725154877541944"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-04T19:25:09.609Z","modified":"2026-03-12T05:47:22.672Z","1.0.0":"2026-03-04T19:25:09.988Z","1.1.0":"2026-03-05T04:48:00.042Z","1.1.1":"2026-03-05T05:54:24.296Z","1.1.2":"2026-03-05T15:52:18.345Z","1.1.3":"2026-03-05T16:44:46.238Z","1.1.4":"2026-03-05T21:20:12.693Z","1.2.0":"2026-03-05T23:35:25.367Z","1.3.0":"2026-03-06T04:03:48.080Z","1.3.1":"2026-03-11T00:00:41.919Z","1.3.2":"2026-03-12T05:47:22.539Z"},"bugs":{"url":"https://github.com/a11y-oracle/a11y-oracle/issues"},"author":{"name":"a11y-oracle"},"license":"MIT","homepage":"https://github.com/a11y-oracle/a11y-oracle/tree/main/libs/playwright-plugin","keywords":["accessibility","a11y","playwright","screen-reader","wcag","testing","e2e"],"repository":{"type":"git","url":"git+https://github.com/a11y-oracle/a11y-oracle.git","directory":"libs/playwright-plugin"},"description":"Playwright test fixture for accessibility speech assertions, keyboard navigation, and focus indicator validation","maintainers":[{"name":"pjlamb12","email":"preston.j.lamb@gmail.com"}],"readme":"# @a11y-oracle/playwright-plugin\n\nPlaywright integration for A11y-Oracle. Provides a test fixture and wrapper class that reads the browser's Accessibility Tree via Chrome DevTools Protocol, dispatches native keyboard events, and analyzes visual focus indicators.\n\n> **✅ Recommended plugin.** Playwright provides direct, first-class CDP session access, making this the most stable and performant integration for A11y-Oracle. If you have a choice of E2E framework, this is the one to use.\n\n```typescript\nimport { test, expect } from '@a11y-oracle/playwright-plugin';\n\ntest('dropdown button announces correctly', async ({ page, a11y }) => {\n  await page.goto('/dropdown-nav.html');\n\n  const speech = await a11y.press('Tab');\n  expect(speech).toContain('Home');\n  expect(speech).toContain('menu item');\n});\n```\n\n## Installation\n\n```bash\nnpm install -D @a11y-oracle/playwright-plugin @a11y-oracle/core-engine @playwright/test\n```\n\n> **Chromium only.** CDP sessions are not available for Firefox or WebKit in Playwright.\n\n## Usage\n\n### Test Fixture (Recommended)\n\nThe plugin exports an extended `test` function that injects an `a11y` fixture. The CDP session is created before each test and cleaned up automatically after.\n\n```typescript\nimport { test, expect } from '@a11y-oracle/playwright-plugin';\n\ntest.describe('Navigation', () => {\n  test.beforeEach(async ({ page }) => {\n    await page.goto('/my-page.html');\n  });\n\n  test('Tab to button announces name and role', async ({ a11y }) => {\n    const speech = await a11y.press('Tab');\n    expect(speech).toBe('Submit, button');\n  });\n\n  test('checkbox announces checked state', async ({ a11y }) => {\n    await a11y.press('Tab');\n    await a11y.press('Tab');\n    const speech = await a11y.press('Space');\n    expect(speech).toContain('checkbox');\n    expect(speech).toContain('checked');\n  });\n\n  test('navigation landmark exists', async ({ a11y }) => {\n    const tree = await a11y.getFullTreeSpeech();\n    const nav = tree.find(r => r.speech.includes('navigation landmark'));\n    expect(nav).toBeDefined();\n  });\n});\n```\n\n### Unified State API\n\nThe `pressKey()` method returns a complete `A11yState` snapshot combining speech output, focused element info, and focus indicator analysis:\n\n```typescript\ntest('focus indicator meets WCAG 2.4.12 AA', async ({ page, a11y }) => {\n  await page.goto('/my-page.html');\n\n  const state = await a11y.pressKey('Tab');\n\n  // Speech\n  expect(state.speech).toContain('Submit');\n  expect(state.speechResult?.role).toBe('button');\n\n  // Focused element\n  expect(state.focusedElement?.tag).toBe('BUTTON');\n  expect(state.focusedElement?.id).toBe('submit-btn');\n  expect(state.focusedElement?.tabIndex).toBe(0);\n\n  // Focus indicator CSS analysis\n  expect(state.focusIndicator.isVisible).toBe(true);\n  expect(state.focusIndicator.contrastRatio).toBeGreaterThanOrEqual(3.0);\n  expect(state.focusIndicator.meetsWCAG_AA).toBe(true);\n});\n\ntest('Shift+Tab navigates backward', async ({ page, a11y }) => {\n  await page.goto('/my-page.html');\n\n  await a11y.pressKey('Tab');\n  const state1 = await a11y.pressKey('Tab');\n  const state2 = await a11y.pressKey('Tab', { shift: true });\n\n  expect(state2.focusedElement?.id).toBe(state1.focusedElement?.id);\n});\n```\n\n### Tab Order and Keyboard Trap Detection\n\n```typescript\ntest('page has correct tab order', async ({ page, a11y }) => {\n  await page.goto('/my-page.html');\n\n  const report = await a11y.traverseTabOrder();\n  expect(report.totalCount).toBeGreaterThan(0);\n  expect(report.entries[0].tag).toBe('A');\n});\n\ntest('modal does not trap keyboard focus', async ({ page, a11y }) => {\n  await page.goto('/modal.html');\n\n  const result = await a11y.traverseSubTree('#modal-container', 20);\n  expect(result.isTrapped).toBe(false);\n  expect(result.escapeElement).not.toBeNull();\n});\n```\n\n### Audit and Issue Reporting\n\nUse `OracleAuditor` from `@a11y-oracle/audit-formatter` to automatically check WCAG rules on every interaction and accumulate any issues:\n\n```bash\nnpm install -D @a11y-oracle/audit-formatter\n```\n\n```typescript\nimport { test, expect } from '@a11y-oracle/playwright-plugin';\nimport { OracleAuditor } from '@a11y-oracle/audit-formatter';\n\ntest('all focus indicators pass oracle rules', async ({ page, a11y }) => {\n  await page.goto('/my-page.html');\n\n  const auditor = new OracleAuditor(a11y, {\n    project: 'my-app',\n    specName: 'navigation.spec.ts',\n  });\n\n  // Each pressKey() automatically checks all 5 state-based rules\n  await auditor.pressKey('Tab');\n  await auditor.pressKey('Tab');\n  await auditor.pressKey('Tab');\n\n  // checkTrap() automatically checks keyboard-trap\n  await auditor.checkTrap('#modal-container');\n\n  // Assert no issues found across all interactions\n  expect(auditor.getIssues()).toHaveLength(0);\n});\n```\n\nTo write issues to a JSON report file at the end of the suite:\n\n```typescript\nimport { test } from '@a11y-oracle/playwright-plugin';\nimport { OracleAuditor, type OracleIssue } from '@a11y-oracle/audit-formatter';\nimport * as fs from 'fs';\n\nconst allIssues: OracleIssue[] = [];\n\ntest('check page focus indicators', async ({ page, a11y }) => {\n  await page.goto('/my-page.html');\n  const auditor = new OracleAuditor(a11y, {\n    project: 'my-app',\n    specName: 'nav.spec.ts',\n  });\n\n  await auditor.pressKey('Tab');\n  await auditor.pressKey('Tab');\n  allIssues.push(...auditor.getIssues());\n});\n\ntest.afterAll(() => {\n  if (allIssues.length > 0) {\n    fs.writeFileSync('oracle-results.json', JSON.stringify(allIssues, null, 2));\n  }\n});\n```\n\nFor detailed remediation guidance on each rule, see the [Remediation Guide](../../docs/REMEDIATION.md).\n\n### Customizing Options\n\nOverride speech engine options per test group using `test.use()`:\n\n```typescript\ntest.describe('without landmark suffix', () => {\n  test.use({ a11yOptions: { includeLandmarks: false } });\n\n  test('nav role without landmark', async ({ page, a11y }) => {\n    await page.goto('/my-page.html');\n    const tree = await a11y.getFullTreeSpeech();\n    const nav = tree.find(r => r.role === 'navigation');\n    expect(nav?.speech).toBe('Main, navigation');\n  });\n});\n```\n\nAvailable options:\n\n| Option | Type | Default | Description |\n|--------|------|---------|-------------|\n| `includeLandmarks` | `boolean` | `true` | Append \"landmark\" to landmark roles |\n| `includeDescription` | `boolean` | `false` | Include `aria-describedby` text in output |\n| `focusSettleMs` | `number` | `50` | Delay (ms) after key press for focus/CSS to settle |\n\n### Manual Usage\n\nIf you need more control over the lifecycle (e.g., attaching to a specific page mid-test), use the `A11yOracle` class directly:\n\n```typescript\nimport { A11yOracle } from '@a11y-oracle/playwright-plugin';\nimport { test, expect } from '@playwright/test';\n\ntest('manual setup', async ({ page }) => {\n  await page.goto('/my-page.html');\n\n  const a11y = new A11yOracle(page, { includeDescription: true });\n  await a11y.init();\n\n  const speech = await a11y.press('Tab');\n  expect(speech).toContain('button');\n\n  await a11y.dispose();\n});\n```\n\n## API Reference\n\n### `A11yOracle`\n\nManages a CDP session and provides accessibility testing for the current page.\n\n#### `constructor(page: Page, options?: A11yOrchestratorOptions)`\n\nCreate a new instance.\n\n- `page` — Playwright `Page` to attach to.\n- `options.includeLandmarks` — Append \"landmark\" to landmark roles. Default `true`.\n- `options.includeDescription` — Include description text. Default `false`.\n- `options.focusSettleMs` — Delay after key press for focus/CSS to settle. Default `50`.\n\n#### `init(): Promise<void>`\n\nOpen a CDP session and enable the Accessibility domain. Must be called before any other method. The test fixture calls this automatically.\n\n#### Speech-Only API\n\n##### `press(key: string): Promise<string>`\n\nPress a keyboard key (via Playwright's `page.keyboard.press()`) and return the speech for the newly focused element. Returns an empty string if no element has focus.\n\n```typescript\nconst speech = await a11y.press('Tab');\n// \"Products, button, collapsed\"\n```\n\n##### `getSpeech(): Promise<string>`\n\nGet the speech string for the currently focused element without pressing a key.\n\n##### `getSpeechResult(): Promise<SpeechResult | null>`\n\nGet the full structured result for the focused element.\n\n##### `getFullTreeSpeech(): Promise<SpeechResult[]>`\n\nGet speech for all non-ignored nodes in the accessibility tree.\n\n#### Unified State API\n\n##### `pressKey(key: string, modifiers?: ModifierKeys): Promise<A11yState>`\n\nDispatch a key via native CDP `Input.dispatchKeyEvent` and return the unified accessibility state. Unlike `press()`, this uses hardware-level key dispatch and returns the full state.\n\n```typescript\nconst state = await a11y.pressKey('Tab');\n// state.speech           → \"Products, button, collapsed\"\n// state.focusedElement   → { tag: 'BUTTON', id: '...', ... }\n// state.focusIndicator   → { isVisible: true, meetsWCAG_AA: true, ... }\n```\n\n##### `getA11yState(): Promise<A11yState>`\n\nGet the current unified state without pressing a key.\n\n```typescript\nawait page.focus('#my-button');\nconst state = await a11y.getA11yState();\n```\n\n##### `traverseTabOrder(): Promise<TabOrderReport>`\n\nExtract all tabbable elements in DOM tab order.\n\n##### `traverseSubTree(selector: string, maxTabs?: number): Promise<TraversalResult>`\n\nDetect whether a container traps keyboard focus (WCAG 2.1.2).\n\n#### Lifecycle\n\n##### `dispose(): Promise<void>`\n\nDetach the CDP session and free resources. The test fixture calls this automatically.\n\n### Test Fixture\n\nThe `test` export extends Playwright's `test` with two fixtures:\n\n| Fixture | Type | Description |\n|---------|------|-------------|\n| `a11y` | `A11yOracle` | Initialized instance, auto-disposed after each test |\n| `a11yOptions` | `A11yOrchestratorOptions` | Override via `test.use()` |\n\n### Exports\n\n```typescript\n// Test fixture (recommended)\nexport { test, expect } from '@a11y-oracle/playwright-plugin';\n\n// Manual usage\nexport { A11yOracle } from '@a11y-oracle/playwright-plugin';\n\n// Fixture types\nexport type { A11yOracleFixtures } from '@a11y-oracle/playwright-plugin';\n\n// Re-exported types from core-engine\nexport type {\n  A11yState,\n  A11yFocusedElement,\n  A11yFocusIndicator,\n  A11yOrchestratorOptions,\n  SpeechResult,\n  SpeechEngineOptions,\n  ModifierKeys,\n  TabOrderReport,\n  TabOrderEntry,\n  TraversalResult,\n  FocusIndicator,\n} from '@a11y-oracle/playwright-plugin';\n```\n\n## Playwright Config\n\nThe plugin requires Chromium. A typical `playwright.config.ts`:\n\n```typescript\nimport { defineConfig } from '@playwright/test';\n\nexport default defineConfig({\n  use: {\n    baseURL: 'http://localhost:4200',\n  },\n  projects: [\n    {\n      name: 'chromium',\n      use: { browserName: 'chromium' },\n    },\n  ],\n  webServer: {\n    command: 'npm run serve',\n    url: 'http://localhost:4200',\n    reuseExistingServer: !process.env.CI,\n  },\n});\n```\n\n## How It Works\n\n1. The fixture opens a CDP session via `page.context().newCDPSession(page)`\n2. It creates both a `SpeechEngine` and an `A11yOrchestrator` on that session\n3. **`press(key)`** — Uses Playwright's keyboard API, waits 50ms, then reads the AXTree for speech\n4. **`pressKey(key)`** — Uses native CDP `Input.dispatchKeyEvent` for hardware-level dispatch, waits `focusSettleMs`, then collects speech + focused element + focus indicator in parallel\n5. Focus indicator analysis runs `Runtime.evaluate` to read computed CSS styles and calculate contrast ratios\n6. On dispose, the CDP session is detached\n\nThe speech format follows: `[Computed Name], [Role], [State/Properties]`\n\nFor the full list of role and state mappings, see the [@a11y-oracle/core-engine README](../core-engine/README.md).\n","readmeFilename":"README.md"}