📄 accessibilityuielementmac.mm
字号:
getLinkedUIElements(linkedElements); return descriptionOfElements(linkedElements);}JSStringRef AccessibilityUIElement::attributesOfDocumentLinks(){ Vector<AccessibilityUIElement> linkElements; getDocumentLinks(linkElements); return descriptionOfElements(linkElements);}JSStringRef AccessibilityUIElement::attributesOfChildren(){ Vector<AccessibilityUIElement> children; getChildren(children); return descriptionOfElements(children);}JSStringRef AccessibilityUIElement::allAttributes(){ NSString* attributes = attributesOfElement(m_element); return [attributes createJSStringRef];}JSStringRef AccessibilityUIElement::attributeValue(JSStringRef attribute){ id value = [m_element accessibilityAttributeValue:[NSString stringWithJSStringRef:attribute]]; if (![value isKindOfClass:[NSString class]]) return NULL; return [value createJSStringRef];}bool AccessibilityUIElement::isAttributeSettable(JSStringRef attribute){ return [m_element accessibilityIsAttributeSettable:[NSString stringWithJSStringRef:attribute]];}JSStringRef AccessibilityUIElement::parameterizedAttributeNames(){ NSArray* supportedParameterizedAttributes = [m_element accessibilityParameterizedAttributeNames]; NSMutableString* attributesString = [NSMutableString string]; for (NSUInteger i = 0; i < [supportedParameterizedAttributes count]; ++i) { [attributesString appendFormat:@"%@\n", [supportedParameterizedAttributes objectAtIndex:i]]; } return [attributesString createJSStringRef];}JSStringRef AccessibilityUIElement::role(){ NSString* role = descriptionOfValue([m_element accessibilityAttributeValue:@"AXRole"], m_element); return concatenateAttributeAndValue(@"AXRole", role);}JSStringRef AccessibilityUIElement::title(){ NSString* title = descriptionOfValue([m_element accessibilityAttributeValue:@"AXTitle"], m_element); return concatenateAttributeAndValue(@"AXTitle", title);}JSStringRef AccessibilityUIElement::description(){ id description = descriptionOfValue([m_element accessibilityAttributeValue:@"AXDescription"], m_element); return concatenateAttributeAndValue(@"AXDescription", description);}double AccessibilityUIElement::width(){ NSValue* sizeValue = [m_element accessibilityAttributeValue:@"AXSize"]; return static_cast<double>([sizeValue sizeValue].width);}double AccessibilityUIElement::height(){ NSValue* sizeValue = [m_element accessibilityAttributeValue:@"AXSize"]; return static_cast<double>([sizeValue sizeValue].height);}double AccessibilityUIElement::intValue(){ id value = [m_element accessibilityAttributeValue:@"AXValue"]; if ([value isKindOfClass:[NSNumber class]]) return [(NSNumber*)value doubleValue]; return 0.0f;}double AccessibilityUIElement::minValue(){ id value = [m_element accessibilityAttributeValue:@"AXMinValue"]; if ([value isKindOfClass:[NSNumber class]]) return [(NSNumber*)value doubleValue]; return 0.0f;}double AccessibilityUIElement::maxValue(){ id value = [m_element accessibilityAttributeValue:@"AXMaxValue"]; if ([value isKindOfClass:[NSNumber class]]) return [(NSNumber*)value doubleValue]; return 0.0;}int AccessibilityUIElement::insertionPointLineNumber(){ id value = [m_element accessibilityAttributeValue:@"AXInsertionPointLineNumber"]; if ([value isKindOfClass:[NSNumber class]]) return [(NSNumber *)value intValue]; return -1;}bool AccessibilityUIElement::supportsPressAction(){ NSArray* actions = [m_element accessibilityActionNames]; return [actions containsObject:@"AXPress"];}// parameterized attributesint AccessibilityUIElement::lineForIndex(int index){ id value = [m_element accessibilityAttributeValue:@"AXLineForIndex" forParameter:[NSNumber numberWithInt:index]]; if ([value isKindOfClass:[NSNumber class]]) return [(NSNumber *)value intValue]; return -1;}JSStringRef AccessibilityUIElement::boundsForRange(unsigned location, unsigned length){ NSRange range = NSMakeRange(location, length); id value = [m_element accessibilityAttributeValue:NSAccessibilityBoundsForRangeParameterizedAttribute forParameter:[NSValue valueWithRange:range]]; NSRect rect = NSMakeRect(0,0,0,0); if ([value isKindOfClass:[NSValue class]]) rect = [value rectValue]; // don't return position information because it is platform dependent NSMutableString* boundsDescription = [NSMutableString stringWithFormat:@"{{%f, %f}, {%f, %f}}",-1.0f,-1.0f,rect.size.width,rect.size.height]; return [boundsDescription createJSStringRef];}JSStringRef AccessibilityUIElement::attributesOfColumnHeaders(){ // not yet defined in AppKit... odd NSArray* columnHeadersArray = [m_element accessibilityAttributeValue:@"AXColumnHeaderUIElements"]; Vector<AccessibilityUIElement> columnHeadersVector; convertNSArrayToVector(columnHeadersArray, columnHeadersVector); return descriptionOfElements(columnHeadersVector);}JSStringRef AccessibilityUIElement::attributesOfRowHeaders(){ NSArray* rowHeadersArray = [m_element accessibilityAttributeValue:@"AXRowHeaderUIElements"]; Vector<AccessibilityUIElement> rowHeadersVector; convertNSArrayToVector(rowHeadersArray, rowHeadersVector); return descriptionOfElements(rowHeadersVector);}JSStringRef AccessibilityUIElement::attributesOfColumns(){ NSArray* columnsArray = [m_element accessibilityAttributeValue:NSAccessibilityColumnsAttribute]; Vector<AccessibilityUIElement> columnsVector; convertNSArrayToVector(columnsArray, columnsVector); return descriptionOfElements(columnsVector);}JSStringRef AccessibilityUIElement::attributesOfRows(){ NSArray* rowsArray = [m_element accessibilityAttributeValue:NSAccessibilityRowsAttribute]; Vector<AccessibilityUIElement> rowsVector; convertNSArrayToVector(rowsArray, rowsVector); return descriptionOfElements(rowsVector);}JSStringRef AccessibilityUIElement::attributesOfVisibleCells(){ NSArray* cellsArray = [m_element accessibilityAttributeValue:@"AXVisibleCells"]; Vector<AccessibilityUIElement> cellsVector; convertNSArrayToVector(cellsArray, cellsVector); return descriptionOfElements(cellsVector);}JSStringRef AccessibilityUIElement::attributesOfHeader(){ id headerObject = [m_element accessibilityAttributeValue:NSAccessibilityHeaderAttribute]; if (!headerObject) return [@"" createJSStringRef]; Vector<AccessibilityUIElement> headerVector; headerVector.append(headerObject); return descriptionOfElements(headerVector);}int AccessibilityUIElement::indexInTable(){ NSNumber* indexNumber = [m_element accessibilityAttributeValue:NSAccessibilityIndexAttribute]; if (!indexNumber) return -1; return [indexNumber intValue];}JSStringRef AccessibilityUIElement::rowIndexRange(){ NSValue* indexRange = [m_element accessibilityAttributeValue:@"AXRowIndexRange"]; NSRange range = indexRange ? [indexRange rangeValue] : NSMakeRange(0,0); NSMutableString* rangeDescription = [NSMutableString stringWithFormat:@"{%d, %d}",range.location, range.length]; return [rangeDescription createJSStringRef];}JSStringRef AccessibilityUIElement::columnIndexRange(){ NSNumber* indexRange = [m_element accessibilityAttributeValue:@"AXColumnIndexRange"]; NSRange range = indexRange ? [indexRange rangeValue] : NSMakeRange(0,0); NSMutableString* rangeDescription = [NSMutableString stringWithFormat:@"{%d, %d}",range.location, range.length]; return [rangeDescription createJSStringRef]; }AccessibilityUIElement AccessibilityUIElement::cellForColumnAndRow(unsigned col, unsigned row){ NSArray *colRowArray = [NSArray arrayWithObjects:[NSNumber numberWithUnsignedInt:col], [NSNumber numberWithUnsignedInt:row], nil]; return [m_element accessibilityAttributeValue:@"AXCellForColumnAndRow" forParameter:colRowArray];}JSStringRef AccessibilityUIElement::selectedTextRange(){ NSNumber *indexRange = [m_element accessibilityAttributeValue:NSAccessibilitySelectedTextRangeAttribute]; NSRange range = indexRange ? [indexRange rangeValue] : NSMakeRange(0,0); NSMutableString *rangeDescription = [NSMutableString stringWithFormat:@"{%d, %d}",range.location, range.length]; return [rangeDescription createJSStringRef]; }void AccessibilityUIElement::setSelectedTextRange(unsigned location, unsigned length){ NSRange textRange = NSMakeRange(location, length); NSValue *textRangeValue = [NSValue valueWithRange:textRange]; [m_element accessibilitySetValue:textRangeValue forAttribute:NSAccessibilitySelectedTextRangeAttribute];}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -