generateRefId static method

String generateRefId(
  1. Element element,
  2. Map<String, int> refCounts
)

Generate semantic ref ID for an element

Implementation

static String generateRefId(Element element, Map<String, int> refCounts) {
  final widget = element.widget;

  // Determine semantic role
  final role = _getSemanticRole(widget);

  // Extract content with priority: key > text/label/hint > tooltip > fallback
  String? content = _extractContent(element, widget);

  // Clean and format content
  if (content != null && content.isNotEmpty) {
    content = _sanitizeContent(content);

    final baseRef = '$role:$content';

    // Check for duplicates and add index if needed
    final count = refCounts[baseRef] ?? 0;
    refCounts[baseRef] = count + 1;

    if (count == 0) {
      return baseRef;
    } else {
      return '${baseRef}[$count]';
    }
  } else {
    // No content - use role + index fallback
    final count = refCounts[role] ?? 0;
    refCounts[role] = count + 1;
    return '${role}[$count]';
  }
}