@webability/core 1.9.0 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -215,6 +215,8 @@ interface PageLike {
215
215
  keyboard?: {
216
216
  press(key: string): Promise<void>;
217
217
  };
218
+ /** The live Playwright Page behind a PageLike shim: axe scans iframes through it. */
219
+ axePage?(): unknown;
218
220
  }
219
221
  /** All fix issue types the pipeline can detect and fix. */
220
222
  type FixIssueType = 'weak_button_name' | 'weak_link_name' | 'weak_heading' | 'weak_iframe_title' | 'weak_page_title' | 'weak_svg_name' | 'weak_skip_link' | 'missing_button_role' | 'missing_semantic_role' | 'missing_document_language' | 'missing_landmark' | 'svg_missing_name' | 'aria_hidden_focusable' | 'adjacent_redundant_link' | 'contrast_insufficient' | 'non_text_contrast_insufficient' | 'target_too_small' | 'focus_not_visible' | 'empty_link' | 'unlabeled_button' | 'missing_label' | 'decorative_icon' | 'skip_link' | 'aria_live' | 'missing_alt' | 'identify_input_purpose' | 'redundant_role' | 'duplicate_id' | 'new_window_link' | 'missing_fieldset_legend' | 'missing_table_header' | 'missing_table_caption' | 'missing_table_scope' | 'external_link_warning' | 'download_link_warning' | 'broken_anchor' | 'form_missing_submit' | 'decorative_image_with_title' | 'placeholder_link' | 'missing_pattern_title' | 'missing_autocomplete' | 'missing_media_controls' | 'unsafe_autoplay' | 'zoom_restriction' | 'missing_button_type' | 'link_consistency' | 'keyboard_trap' | 'focus_order_disruption' | 'missing_captions' | 'color_only_link' | 'label_in_name' | 'onfocus_context_change' | 'focus_obscured_by_sticky' | 'text_spacing_blocked' | 'nested_landmark' | 'motion_uncontrollable' | 'auto_refresh' | 'motion_without_reduced_motion' | 'flashing_content' | 'animated_gif_no_pause' | 'missing_required_indicator' | 'background_image_unlabeled' | 'empty_heading' | 'javascript_link' | 'broken_aria_reference' | 'main_content_hidden' | 'scrollable_not_focusable' | 'meaningful_sequence' | 'sensory_characteristic' | 'image_of_text' | 'reflow_overflow' | 'missing_audio_description' | 'missing_transcript' | 'character_key_shortcut' | 'on_input_change' | 'pointer_gesture' | 'pointer_cancellation' | 'motion_actuation' | 'error_prevention_missing' | 'inconsistent_navigation';
@@ -364,10 +366,13 @@ interface JudgedEntry {
364
366
  * injected nodes changed (the scanner restored it)
365
367
  * - finding-dropped: a finding sat on an injected (marked) node or on an
366
368
  * element a tool left focused; it was not reported
369
+ * - engine-failed: an engine could not read the page (a detector, axe, or the
370
+ * page itself was lost mid-scan) and threw. The findings it would have
371
+ * produced are absent, so the result must not be read as clean for them.
367
372
  */
368
373
  interface InternalBug {
369
374
  tool: string;
370
- kind: 'state-not-restored' | 'finding-dropped';
375
+ kind: 'state-not-restored' | 'finding-dropped' | 'engine-failed';
371
376
  detail: string;
372
377
  selector?: string;
373
378
  /**
@@ -215,6 +215,8 @@ interface PageLike {
215
215
  keyboard?: {
216
216
  press(key: string): Promise<void>;
217
217
  };
218
+ /** The live Playwright Page behind a PageLike shim: axe scans iframes through it. */
219
+ axePage?(): unknown;
218
220
  }
219
221
  /** All fix issue types the pipeline can detect and fix. */
220
222
  type FixIssueType = 'weak_button_name' | 'weak_link_name' | 'weak_heading' | 'weak_iframe_title' | 'weak_page_title' | 'weak_svg_name' | 'weak_skip_link' | 'missing_button_role' | 'missing_semantic_role' | 'missing_document_language' | 'missing_landmark' | 'svg_missing_name' | 'aria_hidden_focusable' | 'adjacent_redundant_link' | 'contrast_insufficient' | 'non_text_contrast_insufficient' | 'target_too_small' | 'focus_not_visible' | 'empty_link' | 'unlabeled_button' | 'missing_label' | 'decorative_icon' | 'skip_link' | 'aria_live' | 'missing_alt' | 'identify_input_purpose' | 'redundant_role' | 'duplicate_id' | 'new_window_link' | 'missing_fieldset_legend' | 'missing_table_header' | 'missing_table_caption' | 'missing_table_scope' | 'external_link_warning' | 'download_link_warning' | 'broken_anchor' | 'form_missing_submit' | 'decorative_image_with_title' | 'placeholder_link' | 'missing_pattern_title' | 'missing_autocomplete' | 'missing_media_controls' | 'unsafe_autoplay' | 'zoom_restriction' | 'missing_button_type' | 'link_consistency' | 'keyboard_trap' | 'focus_order_disruption' | 'missing_captions' | 'color_only_link' | 'label_in_name' | 'onfocus_context_change' | 'focus_obscured_by_sticky' | 'text_spacing_blocked' | 'nested_landmark' | 'motion_uncontrollable' | 'auto_refresh' | 'motion_without_reduced_motion' | 'flashing_content' | 'animated_gif_no_pause' | 'missing_required_indicator' | 'background_image_unlabeled' | 'empty_heading' | 'javascript_link' | 'broken_aria_reference' | 'main_content_hidden' | 'scrollable_not_focusable' | 'meaningful_sequence' | 'sensory_characteristic' | 'image_of_text' | 'reflow_overflow' | 'missing_audio_description' | 'missing_transcript' | 'character_key_shortcut' | 'on_input_change' | 'pointer_gesture' | 'pointer_cancellation' | 'motion_actuation' | 'error_prevention_missing' | 'inconsistent_navigation';
@@ -364,10 +366,13 @@ interface JudgedEntry {
364
366
  * injected nodes changed (the scanner restored it)
365
367
  * - finding-dropped: a finding sat on an injected (marked) node or on an
366
368
  * element a tool left focused; it was not reported
369
+ * - engine-failed: an engine could not read the page (a detector, axe, or the
370
+ * page itself was lost mid-scan) and threw. The findings it would have
371
+ * produced are absent, so the result must not be read as clean for them.
367
372
  */
368
373
  interface InternalBug {
369
374
  tool: string;
370
- kind: 'state-not-restored' | 'finding-dropped';
375
+ kind: 'state-not-restored' | 'finding-dropped' | 'engine-failed';
371
376
  detail: string;
372
377
  selector?: string;
373
378
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webability/core",
3
- "version": "1.9.0",
3
+ "version": "1.11.0",
4
4
  "description": "Accessibility scanner engine — WCAG 2.2 AA compliance testing with 200+ rules",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",