{"version":3,"sources":["../../src/aria/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * @fileoverview OrdoJS Accessibility - ARIA Module\n *\n * Automatic ARIA attribute generation and management.\n */\n\nimport { EventEmitter } from 'events';\nimport type {\n    ARIAAttribute,\n    ARIARole,\n    AccessibilityConfig\n} from '../types/index.js';\n\n/**\n * ARIA manager for handling ARIA attribute generation and management\n */\nexport class ARIAManager extends EventEmitter {\n  private config: AccessibilityConfig;\n  private roles: Map<string, ARIARole>;\n  private attributes: Map<string, ARIAAttribute>;\n  private isInitialized: boolean;\n\n  /**\n   * Create a new ARIAManager instance\n   *\n   * @param config - Accessibility configuration\n   */\n  constructor(config: AccessibilityConfig) {\n    super();\n\n    this.config = config;\n    this.roles = new Map();\n    this.attributes = new Map();\n    this.isInitialized = false;\n  }\n\n  /**\n   * Initialize the ARIA manager\n   */\n  async initialize(): Promise<void> {\n    if (this.isInitialized) {\n      console.warn('ARIA manager is already initialized');\n      return;\n    }\n\n    try {\n      // Load ARIA roles and attributes\n      await this.loadARIARoles();\n      await this.loadARIAAttributes();\n\n      this.isInitialized = true;\n      console.log('ARIA manager initialized successfully');\n\n      this.emit('initialized');\n    } catch (error) {\n      console.error('Failed to initialize ARIA manager:', error);\n      this.emit('error', error);\n      throw error;\n    }\n  }\n\n  /**\n   * Generate ARIA attributes for an element\n   *\n   * @param element - Element information\n   * @param context - Element context\n   * @returns Generated ARIA attributes\n   */\n  generateARIA(\n    element: {\n      tag: string;\n      content: string;\n      attributes: Record<string, string>;\n    },\n    context: {\n      role?: string;\n      label?: string;\n      description?: string;\n      state?: Record<string, any>;\n      properties?: Record<string, any>;\n      interactive?: boolean;\n      landmark?: boolean;\n    } = {}\n  ): Record<string, string> {\n    const ariaAttributes: Record<string, string> = {};\n\n    // Add role if provided or infer from element\n    if (context.role) {\n      ariaAttributes['role'] = context.role;\n    } else {\n      const inferredRole = this.inferRole(element.tag, element.content, element.attributes);\n      if (inferredRole) {\n        ariaAttributes['role'] = inferredRole;\n      }\n    }\n\n    // Add label\n    if (context.label) {\n      ariaAttributes['aria-label'] = context.label;\n    } else {\n      const inferredLabel = this.inferLabel(element.content, element.attributes);\n      if (inferredLabel) {\n        ariaAttributes['aria-label'] = inferredLabel;\n      }\n    }\n\n    // Add description\n    if (context.description) {\n      ariaAttributes['aria-describedby'] = context.description;\n    }\n\n    // Add states\n    if (context.state) {\n      for (const [key, value] of Object.entries(context.state)) {\n        ariaAttributes[`aria-${key}`] = String(value);\n      }\n    }\n\n    // Add properties\n    if (context.properties) {\n      for (const [key, value] of Object.entries(context.properties)) {\n        ariaAttributes[`aria-${key}`] = String(value);\n      }\n    }\n\n    // Add landmark attributes\n    if (context.landmark) {\n      ariaAttributes['aria-label'] = ariaAttributes['aria-label'] || this.generateLandmarkLabel(element.tag);\n    }\n\n    // Add interactive attributes\n    if (context.interactive) {\n      ariaAttributes['tabindex'] = '0';\n      if (!ariaAttributes['role']) {\n        ariaAttributes['role'] = 'button';\n      }\n    }\n\n    return ariaAttributes;\n  }\n\n  /**\n   * Validate ARIA attributes\n   *\n   * @param attributes - ARIA attributes to validate\n   * @returns Validation result\n   */\n  validateARIA(attributes: Record<string, string>): {\n    isValid: boolean;\n    errors: string[];\n    warnings: string[];\n    suggestions: string[];\n  } {\n    const errors: string[] = [];\n    const warnings: string[] = [];\n    const suggestions: string[] = [];\n\n    for (const [key, value] of Object.entries(attributes)) {\n      if (key.startsWith('aria-')) {\n        const attributeName = key.replace('aria-', '');\n        const attribute = this.attributes.get(attributeName);\n\n        if (attribute) {\n          // Check if value is valid for this attribute\n          if (attribute.allowedValues && !attribute.allowedValues.includes(value)) {\n            errors.push(`Invalid value '${value}' for attribute '${key}'`);\n          }\n\n          // Check if attribute is required\n          if (attribute.required && !value) {\n            errors.push(`Required attribute '${key}' is missing`);\n          }\n        } else {\n          warnings.push(`Unknown ARIA attribute '${key}'`);\n        }\n      }\n    }\n\n    // Check role-attribute compatibility\n    const role = attributes['role'];\n    if (role) {\n      const roleInfo = this.roles.get(role);\n      if (roleInfo) {\n        // Check if all required attributes are present\n        for (const requiredAttr of roleInfo.requiredAttributes) {\n          const attrKey = `aria-${requiredAttr}`;\n          if (!attributes[attrKey]) {\n            errors.push(`Required attribute '${attrKey}' for role '${role}' is missing`);\n          }\n        }\n\n        // Check for prohibited attributes\n        for (const prohibitedAttr of roleInfo.prohibitedAttributes) {\n          const attrKey = `aria-${prohibitedAttr}`;\n          if (attributes[attrKey]) {\n            warnings.push(`Prohibited attribute '${attrKey}' for role '${role}'`);\n          }\n        }\n      }\n    }\n\n    return {\n      isValid: errors.length === 0,\n      errors,\n      warnings,\n      suggestions\n    };\n  }\n\n  /**\n   * Get ARIA role information\n   *\n   * @param role - Role name\n   * @returns Role information or undefined\n   */\n  getRoleInfo(role: string): ARIARole | undefined {\n    return this.roles.get(role);\n  }\n\n  /**\n   * Get ARIA attribute information\n   *\n   * @param attribute - Attribute name\n   * @returns Attribute information or undefined\n   */\n  getAttributeInfo(attribute: string): ARIAAttribute | undefined {\n    return this.attributes.get(attribute);\n  }\n\n  /**\n   * Get all available roles\n   *\n   * @returns Array of role names\n   */\n  getAvailableRoles(): string[] {\n    return Array.from(this.roles.keys());\n  }\n\n  /**\n   * Get all available attributes\n   *\n   * @returns Array of attribute names\n   */\n  getAvailableAttributes(): string[] {\n    return Array.from(this.attributes.keys());\n  }\n\n  /**\n   * Get roles by type\n   *\n   * @param type - Role type\n   * @returns Array of roles\n   */\n  getRolesByType(type: 'abstract' | 'widget' | 'document' | 'landmark' | 'window'): ARIARole[] {\n    return Array.from(this.roles.values()).filter(role => role.type === type);\n  }\n\n  /**\n   * Get ARIA manager statistics\n   *\n   * @returns Statistics\n   */\n  getStats(): {\n    totalRoles: number;\n    totalAttributes: number;\n    rolesByType: Record<string, number>;\n  } {\n    const rolesByType: Record<string, number> = {};\n    for (const role of this.roles.values()) {\n      rolesByType[role.type] = (rolesByType[role.type] || 0) + 1;\n    }\n\n    return {\n      totalRoles: this.roles.size,\n      totalAttributes: this.attributes.size,\n      rolesByType\n    };\n  }\n\n  /**\n   * Infer role from element\n   *\n   * @param tag - Element tag\n   * @param content - Element content\n   * @param attributes - Element attributes\n   * @returns Inferred role or undefined\n   */\n  private inferRole(tag: string, content: string, attributes: Record<string, string>): string | undefined {\n    // Check if role is explicitly set\n    if (attributes.role) {\n      return attributes.role;\n    }\n\n    // Infer role based on tag and content\n    switch (tag.toLowerCase()) {\n      case 'button':\n        return 'button';\n      case 'a':\n        return 'link';\n      case 'input':\n        const type = attributes.type || 'text';\n        switch (type) {\n          case 'checkbox':\n            return 'checkbox';\n          case 'radio':\n            return 'radio';\n          case 'search':\n            return 'searchbox';\n          default:\n            return 'textbox';\n        }\n      case 'select':\n        return 'combobox';\n      case 'textarea':\n        return 'textbox';\n      case 'nav':\n        return 'navigation';\n      case 'main':\n        return 'main';\n      case 'aside':\n        return 'complementary';\n      case 'header':\n        return 'banner';\n      case 'footer':\n        return 'contentinfo';\n      case 'article':\n        return 'article';\n      case 'section':\n        return 'region';\n      case 'form':\n        return 'form';\n      case 'table':\n        return 'table';\n      case 'ul':\n      case 'ol':\n        return 'list';\n      case 'li':\n        return 'listitem';\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return 'heading';\n      case 'img':\n        return 'img';\n      case 'progress':\n        return 'progressbar';\n      case 'meter':\n        return 'meter';\n      default:\n        return undefined;\n    }\n  }\n\n  /**\n   * Infer label from content and attributes\n   *\n   * @param content - Element content\n   * @param attributes - Element attributes\n   * @returns Inferred label or undefined\n   */\n  private inferLabel(content: string, attributes: Record<string, string>): string | undefined {\n    // Check for explicit label\n    if (attributes['aria-label']) {\n      return attributes['aria-label'];\n    }\n\n    // Check for title attribute\n    if (attributes.title) {\n      return attributes.title;\n    }\n\n    // Check for alt attribute (for images)\n    if (attributes.alt) {\n      return attributes.alt;\n    }\n\n    // Check for placeholder attribute\n    if (attributes.placeholder) {\n      return attributes.placeholder;\n    }\n\n    // Use content if it's meaningful\n    const trimmedContent = content.trim();\n    if (trimmedContent && trimmedContent.length > 0 && trimmedContent.length < 100) {\n      return trimmedContent;\n    }\n\n    return undefined;\n  }\n\n  /**\n   * Generate landmark label\n   *\n   * @param tag - Element tag\n   * @returns Landmark label\n   */\n  private generateLandmarkLabel(tag: string): string {\n    switch (tag.toLowerCase()) {\n      case 'nav':\n        return 'Navigation';\n      case 'main':\n        return 'Main content';\n      case 'aside':\n        return 'Complementary content';\n      case 'header':\n        return 'Header';\n      case 'footer':\n        return 'Footer';\n      case 'article':\n        return 'Article';\n      case 'section':\n        return 'Section';\n      case 'form':\n        return 'Form';\n      default:\n        return 'Landmark';\n    }\n  }\n\n  /**\n   * Load ARIA roles\n   */\n  private async loadARIARoles(): Promise<void> {\n    // Load common ARIA roles\n    const commonRoles: Record<string, ARIARole> = {\n      'button': {\n        name: 'button',\n        type: 'widget',\n        requiredAttributes: [],\n        supportedAttributes: ['aria-expanded', 'aria-pressed', 'aria-haspopup'],\n        requiredOwnedElements: [],\n        requiredContextRoles: [],\n        prohibitedAttributes: [],\n        description: 'An input that allows for user-triggered actions',\n        examples: ['<button>Click me</button>', '<div role=\"button\">Click me</div>']\n      },\n      'link': {\n        name: 'link',\n        type: 'widget',\n        requiredAttributes: [],\n        supportedAttributes: ['aria-expanded', 'aria-haspopup'],\n        requiredOwnedElements: [],\n        requiredContextRoles: [],\n        prohibitedAttributes: [],\n        description: 'An interactive reference to an internal or external resource',\n        examples: ['<a href=\"/\">Home</a>', '<div role=\"link\">Home</div>']\n      },\n      'navigation': {\n        name: 'navigation',\n        type: 'landmark',\n        requiredAttributes: [],\n        supportedAttributes: ['aria-label', 'aria-labelledby'],\n        requiredOwnedElements: [],\n        requiredContextRoles: [],\n        prohibitedAttributes: [],\n        description: 'A landmark containing navigation links',\n        examples: ['<nav>Navigation</nav>', '<div role=\"navigation\">Navigation</div>']\n      },\n      'main': {\n        name: 'main',\n        type: 'landmark',\n        requiredAttributes: [],\n        supportedAttributes: ['aria-label', 'aria-labelledby'],\n        requiredOwnedElements: [],\n        requiredContextRoles: [],\n        prohibitedAttributes: [],\n        description: 'The main content of a document',\n        examples: ['<main>Main content</main>', '<div role=\"main\">Main content</div>']\n      },\n      'banner': {\n        name: 'banner',\n        type: 'landmark',\n        requiredAttributes: [],\n        supportedAttributes: ['aria-label', 'aria-labelledby'],\n        requiredOwnedElements: [],\n        requiredContextRoles: [],\n        prohibitedAttributes: [],\n        description: 'A landmark that contains site-oriented content',\n        examples: ['<header>Header</header>', '<div role=\"banner\">Header</div>']\n      },\n      'contentinfo': {\n        name: 'contentinfo',\n        type: 'landmark',\n        requiredAttributes: [],\n        supportedAttributes: ['aria-label', 'aria-labelledby'],\n        requiredOwnedElements: [],\n        requiredContextRoles: [],\n        prohibitedAttributes: [],\n        description: 'A landmark containing information about the parent document',\n        examples: ['<footer>Footer</footer>', '<div role=\"contentinfo\">Footer</div>']\n      }\n    };\n\n    for (const [name, role] of Object.entries(commonRoles)) {\n      this.roles.set(name, role);\n    }\n  }\n\n  /**\n   * Load ARIA attributes\n   */\n  private async loadARIAAttributes(): Promise<void> {\n    // Load common ARIA attributes\n    const commonAttributes: Record<string, ARIAAttribute> = {\n      'label': {\n        name: 'label',\n        value: '',\n        type: 'string',\n        required: false,\n        description: 'Defines a string value that labels the current element'\n      },\n      'describedby': {\n        name: 'describedby',\n        value: '',\n        type: 'idrefs',\n        required: false,\n        description: 'Identifies the element that describes the current element'\n      },\n      'expanded': {\n        name: 'expanded',\n        value: '',\n        type: 'boolean',\n        required: false,\n        allowedValues: ['true', 'false', 'undefined'],\n        description: 'Indicates whether the element is expanded or collapsed'\n      },\n      'pressed': {\n        name: 'pressed',\n        value: '',\n        type: 'boolean',\n        required: false,\n        allowedValues: ['true', 'false', 'mixed', 'undefined'],\n        description: 'Indicates the current pressed state of toggle buttons'\n      },\n      'haspopup': {\n        name: 'haspopup',\n        value: '',\n        type: 'boolean',\n        required: false,\n        allowedValues: ['true', 'false', 'menu', 'listbox', 'tree', 'grid', 'dialog'],\n        description: 'Indicates that the element has a popup context menu or sub-level menu'\n      }\n    };\n\n    for (const [name, attribute] of Object.entries(commonAttributes)) {\n      this.attributes.set(name, attribute);\n    }\n  }\n}\n"]}