generateRefId static method
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]';
}
}