IAccessible and UI automation testing.

Sciter2 implements IAccessible in the way compatible with conventional browsers so UI automation tools based on IAccessible should work with Sciter based UI out of the box.

To simplify UI tests scripting it has few extensions listed below:

HRESULT IAccessible::get_accChild(VARIANT varChild, IDispatch **ppdispChild);
the varChild may accept strings passed as VARIANT(VT_BSTR,str).  The str is interpreted as a selector and if matching element is found its IAccessible wrapper gets returned in ppdispChild. That is equivalent of Element.select(selector) method in script.
HRESULT IAccessible::get_accValue(VARIANT varChild, BSTR *pszValue);
If varChild here holds negative int (VT_I4) then it gets interpreted as an index of attribute and the method returns corresponding attribute value. -1 - first attribute. -2 - second, etc. And if varChild holds string (VT_BSTR) then it gets interpreted as a name of attribute and the method returns corresponding attribute value.
HRESULT IAccessible::get_accName(VARIANT varChild, BSTR *pszValue);
If varChild here holds negative int (VT_I4) then it gets interpreted as an index of attribute and the method returns corresponding attribute value.
HRESULT IAccessible::get_accState( VARIANT varChild, VARIANT *pvarState);
If varChild here holds -1 (VT_I4) then the method returns number of attributes defined on element as VARIANT(VT_I4,nAttributes)

Standard parameter values and other IAccessible methods work as defined IAccessible documentation.