SVG Accessibility/Testing/Test Assertions with Tables for ATTA 2

From W3C Wiki

Testing

The following are testable statements for SVG accessibility. id of element to test is test (id="test"). Expected results are always for the element with the id="test".

Definition of BLANK is here https://www.w3.org/WAI/PF/wiki/ARIA/Tests/Testable_Statements#Definition_of_.27BLANK.27.

NAOC (or NOAC) = No accessible object created in the accessibility tree

Language dependent tests are here Language Test Assertions

As of March 30, 2016 101 tests are captured

  • 17 tests for name
  • 16 tests for description
  • 19 tests for role (in accessibility tree)
  • 8 tests for role = presentation (not in accessibility tree)
  • 11 tests for role = none (not in accessibility tree)
  • 30 tests for not in accessibility tree (default mappings...)

Latest zip file of tests File:SvgTests.zip

Testable statements for name calculation

Simple name testable statements

// aria-labelledby, aria-label, title
 if given
 <circle id="test" aria-labelledby="t1" aria-label="bob" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle>
 <text id="t1" x="40" y="90">end</text> 
then accessible name = "end"
ATK property name is end
relation RELATION_LABELLED_BY is [t1]
AXAPI property AXDescription is end
IAccessible2 relation IA2_RELATION_LABELLED_BY is [t1]
MSAA property accName is end
UIA property Name is end
property LabeledBy is [t1]
// aria-labelledby, aria-label
 if given
 <circle id="test" aria-labelledby="t1" aria-label="bob" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" y="90">end</text> 
then accessible name = "end"
ATK property name is end
relation RELATION_LABELLED_BY is [t1]
AXAPI property AXDescription is end
IAccessible2 relation IA2_RELATION_LABELLED_BY is [t1]
MSAA property accName is end
UIA property Name is end
property LabeledBy is [t1]
// aria-labelledby, title
 if given
 <circle id="test" aria-labelledby="t1" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle>
 <text id="t1" x="40" y="90">end</text> 
then accessible name = "end"
ATK property name is end
relation RELATION_LABELLED_BY is [t1]
AXAPI property AXDescription is end
IAccessible2 relation IA2_RELATION_LABELLED_BY is [t1]
MSAA property accName is end
UIA property Name is end
property LabeledBy is [t1]
// aria-labelledby only
 if given
 <circle id="test" aria-labelledby="t1" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" y="90">end</text> 
then accessible name = "end"
ATK property name is end
relation RELATION_LABELLED_BY is [t1]
AXAPI property AXDescription is end
IAccessible2 relation IA2_RELATION_LABELLED_BY is [t1]
MSAA property accName is end
UIA property Name is end
property LabeledBy is [t1]
// aria-label, title
 if given
 <circle id="test" aria-label="hello" cx='10' cy='10' r='5'>
   <title>abc</title>
 </circle>
and aria-labelledby is not specified 
then accessible name = "hello" 
ATK property name is hello
AXAPI property AXDescription is hello
MSAA property accName is hello
UIA property Name is hello
// aria-label only
 if given
 <circle id="test" aria-label="hello" cx='10' cy='10' r='5'/> 
and aria-labelledby is not specified then accessible name = "hello" 
ATK property name is hello
AXAPI property AXDescription is hello
MSAA property accName is hello
UIA property Name is hello
// title only
 if given
 <circle id="test" cx='10' cy='100' r='5' >
   <title>abc</title>
 </circle> 
and aria-labelledby and aria-label is not specified then accessible name = "abc"
ATK property name is abc
AXAPI property AXDescription is abc
MSAA property accName is abc
UIA property Name is abc
// test element is second element
 if given
 <circle aria-labelledby="t1" aria-label="bob" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle>
 <text id="t1" x="40" y="90">end</text>
 <circle id="test" aria-label="hello" cx='10' cy='10' r='5'>
   <title>abc</title>
 </circle>
and aria-labelledby is not specified then accessible name = "hello"
ATK property name is hello
AXAPI property AXDescription is hello
MSAA property accName is hello
UIA property Name is hello

Empty aria-labelledby testable statements

// empty aria-labelledby, aria-label, title
 if given
 <circle id="test" aria-labelledby="" aria-label="bob" cx='50' cy='100' 
r='15'>
   <title>abc</title>
 </circle> 
then accessible name = "bob"
ATK property name is bob
AXAPI property AXDescription is bob
MSAA property accName is bob
UIA property Name is bob
// empty aria-labelledby, aria-label
 if given
 <circle id="test" aria-labelledby="" aria-label="bob" cx='50' cy='100' r='15'/> 

then accessible name = "bob"

ATK property name is bob
AXAPI property AXDescription is bob
MSAA property accName is bob
UIA property Name is bob
// empty aria-labelledby, title
 if given
 <circle id="test" aria-labelledby="" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle> 

then accessible name = abc 

ATK property name is abc
AXAPI property AXDescription is abc
MSAA property accName is abc
UIA property Name is abc
// empty aria-labelledby only
 if given
 <circle id="test" aria-labelledby="" cx='50' cy='100' r='15'/> 
then accessible name = BLANK
 
ATK property name empty true
AXAPI property AXDescription is <empty>
MSAA property accName empty true
UIA property Name empty true

Multiple idrefs in aria-labelledby

// two valid idrefs
 if given
 <circle id="test" aria-labelledby="t1 t2" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" y="90">the</text> <text id="t2" x="140" y="90">end</text> 
then accessible name = "the end"
ATK property name is the end
relation RELATION_LABELLED_BY is [t1,t2]
AXAPI property AXDescription is the end
IAccessible2 relation IA2_RELATION_LABELLED_BY is [t1,t2]
MSAA property accName is the end
UIA property Name is the end
property LabelledBy isNot [t1,t2]
// two valid idrefs, one with an aria-label
 if given
 <circle id="test" aria-labelledby="t1 t2" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" y="90" aria-label="big">the</text> <text id="t2" x="140" y="90">end</text> 
then accessible name = "big end"
ATK property name is big end
relation RELATION_LABELLED_BY is [t1,t2]
AXAPI property AXDescription is big end
IAccessible2 relation IA2_RELATION_LABELLED_BY is [t1,t2]
MSAA property accName is big end
UIA property Name is big end
property LabelledBy isNot [t1,t2]
// two valid idrefs, one with an aria-label, one with aria-labelledby
 if given
 <circle id="test" aria-labelledby="t1 t2" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" y="90" 
aria-label="big">the</text> <text id="t2" x="140" y="90" aria-labelledby='t3'>end</text> <text id="t3" 
x="180" y="90">finish</text> 
then accessible name = "big finish"
ATK property name is big finish
relation RELATION_LABELLED_BY is [t1,t2]
AXAPI property AXDescription is big finish
IAccessible2 relation IA2_RELATION_LABELLED_BY is [t1,t2]
MSAA property accName is big finish
UIA property Name is big finish
property LabelledBy isNot [t1,t2]
// one valid idref, id t1 invalid
 if given
 <circle id="test" aria-labelledby="t1 t2" cx='50' cy='100' r='15'/>
 <text id="t2" x="40" y="90">end</text> 
then accessible name = "end"
ATK property name is end
relation RELATION_LABELLED_BY is [t2]
AXAPI property AXDescription is end
IAccessible2 relation IA2_RELATION_LABELLED_BY is [t2]
MSAA property accName is end
UIA property Name is end
property LabelledBy isNot [t2]

Name from content testable statements

// text
 if given
 <text id="test" x="40" y="90">end</text> 
then accessible name = "end"
ATK property name is end
AXAPI property AXDescription is end
MSAA property accName is end
UIA property Name is end

a element testable statements

// a aria-label, xlink title
 if given
 <a id="test" aria-label="booth" href="../index.html" xlink:title="table" >
 </a> 
and aria-labelledby is not specified then accessible name = "booth"
ATK property name is booth
AXAPI property AXDescription is booth
MSAA property accName is booth
UIA property Name is booth
// a xlink title only
 if given
 <a id="test" href="../index.html" xlink:title="table" >
 </a> 
and aria-labelledby is not specified then accessible name = "table"
ATK property name is table
AXAPI property AXTitle is table
MSAA property accName is table
UIA property Name is table
// a title only
 if given
 <a id="test" href="../index.html">
   <title>counter</title>
 </a> 
and aria-labelledby is not specified then accessible name = "counter"
ATK property name is counter
AXAPI property AXDescription is counter
MSAA property accName is counter
UIA property Name is counter
// a title and xlink title
 if given
 <a id="test" href="../index.html" xlink:title="table" >
   <title>counter</title>
 </a> 
and aria-labelledby is not specified then accessible name = "counter"
ATK property name is counter
AXAPI property AXDescription is counter
MSAA property accName is counter
UIA property Name is counter

use element testable statements

// use aria-labelledby on use, title on reference
 if given
 <defs>
 <path id="r1" d="M 8,2 L 10,0 L 7,-5  L 3,-7 L 3,-8 L -9,1  L -5,4 L 1,3 L 2,2 L 5,3 z">
   <title>rock</title>
 </path>
 </defs>
 <use id="test" transform="translate(30 345)" xlink:href="#r1" aria-labelledby="b1"/>
 <text id="b1" x="35" y="90">boulder</text> 
then accessible name = "boulder"
ATK property name is boulder
relation RELATION_LABELLED_BY is [b1]
AXAPI property AXDescription is boulder
IAccessible2 relation IA2_RELATION_LABELLED_BY is [b1]
MSAA property accName is boulder
UIA property Name is boulder
property LabelledBy isNot [b1]
// use aria-label on use, title on reference
 if given
 <defs>
 <path id="r1" d="M 8,2 L 10,0 L 7,-5  L 3,-7 L 3,-8 L -9,1  L -5,4 L 1,3 L 2,2 L 5,3  z">
   <title>rock</title>
 </path>
 </defs>
 <use id="test" transform="translate(30 345)" xlink:href="#r1" aria-label="stone"/> 
and aria-labelledby is not specified then accessible name = "stone"
 
ATK property name is stone
AXAPI property AXDescription is stone
MSAA property accName is stone
UIA property Name is stone
// use title on use, title on reference
 if given
 <defs>
 <path id="r1" d="M 8,2 L 10,0 L 7,-5  L 3,-7 L 3,-8 L -9,1  L -5,4 L 1,3 L 2,2 L 5,3  z">
   <title>rock</title>
 </path>
 </defs>
 <use id="test" transform="translate(30 345)" xlink:href="#r1">
   <title>pebble</title>
 </use> 
and aria-labelledby is not specified then accessible name = "pebble"
 
ATK property name is pebble
AXAPI property AXDescription is pebble
MSAA property accName is pebble
UIA property Name is pebble
// use title on reference xlink href
 if given
 <defs>
 <path id="r1" d="M 8,2 L 10,0 L 7,-5  L 3,-7 L 3,-8 L -9,1  L -5,4 L 1,3 L 2,2 L 5,3 z">
   <title>rock</title>
 </path>
 </defs>
 <use id="test" transform="translate(30 345)" xlink:href="#r1"/> 
and aria-labelledby is not specified then accessible name = "rock"
 
ATK property name is rock
AXAPI property AXTitle is rock
MSAA property accName is rock
UIA property Name is rock
// use title on reference href
 if given
 <defs>
 <path id="r1" d="M 8,2 L 10,0 L 7,-5  L 3,-7 L 3,-8 L -9,1  L -5,4 L 1,3 L 2,2 L 5,3 z">
   <title>rock</title>
 </path>
 </defs>
 <use id="test" transform="translate(30 345)" href="#r1"/> 
and aria-labelledby is not specified then accessible name = "rock"
 
ATK property name is rock
AXAPI property AXTitle is rock
MSAA property accName is rock
UIA property Name is rock

Empty or all whitespace title/desc

// path, empty title
 if given
 <path id="test" d="M 100 100 L 300 100 L 200 300 z" fill="red" >
   <title>
 </title>
 </path> 
then accessible name = BLANK
 
ATK property name empty true
AXAPI property AXDescription is <empty>
MSAA property accName empty true
UIA property Name empty true
// circle, whitespace title
 if given
 <circle id="test" cx='10' cy='10' r='5'>
   <title>  </title>
 </circle> 
then accessible name = BLANK
 
ATK property name empty true
AXAPI property AXDescription is <empty>
MSAA property accName empty true
UIA property Name empty true
// ellipse, empty title, empty desc
 if given
 <ellipse id="test" cx='40' cy='100' rx='25' ry='15'>
   <title>
 </title>
 <desc>
 </desc>
 </ellipse> 
then accessible name = BLANK
 
ATK property name empty true
AXAPI property AXDescription is <empty>
MSAA property accName empty true
UIA property Name empty true
// line whitespace title, empty desc
 if given
 <line id="test" x1='10' y1='10' x2='50' y2='10'>
   <title>  </title>
 <desc>
 </desc>
 </line> 
then accessible name = BLANK
 
ATK property name empty true
AXAPI property AXDescription is <empty>
MSAA property accName empty true
UIA property Name empty true
// circle, empty title, whitespace desc
 if given
 <circle id="test" cx='10' cy='10' r='5'>
   <title>
 </title>
 <desc>   </desc>
 </circle> 
then accessible name = BLANK
 
ATK property name empty true
AXAPI property AXDescription is <empty>
MSAA property accName empty true
UIA property Name empty true
// line, whitespace title, whitespace desc
 if given
 <line id="test" x1='10' y1='10' x2='50' y2='10'>
   <title> </title>
 <desc>		 </desc>
 </line> 
then accessible name = BLANK
 
ATK property name empty true
AXAPI property AXDescription is <empty>
MSAA property accName empty true
UIA property Name empty true

Testable statements for description calculation

Simple description testable statements

// aria-describedby, desc, title
 if given
 <circle id="test" aria-describedby="t1" cx='50' cy='100' r='15'>
   <title>abc</title>
 <desc>123</desc>
 </circle>
 <text id="t1" x="40" y="90">end</text> 
then accessible 
description = "end"
 
ATK property description is end
relation RELATION_DESCRIBED_BY is end
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is end
IAccessible2 relation IA2_RELATION_DESCRIBED_BY is <not empty>
MSAA property accDescription is end
UIA TBD
property DescribedBy isNot <not empty>
// aria-describedby, desc
 if given
 <circle id="test" aria-describedby="t1" cx='50' cy='100' r='15'>
 <desc>123</desc>
 </circle>
 <text 
id="t1" x="40" y="90">end</text> 
then accessible description = "end"
 
ATK property description is end
relation RELATION_DESCRIBED_BY is end
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is end
IAccessible2 relation IA2_RELATION_DESCRIBED_BY is <not empty>
MSAA property accDescription is end
UIA TBD
property DescribedBy isNot <not empty>
// aria-describedby, title
 if given
 <circle id="test" aria-describedby="t1" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle>
 <text 
id="t1" x="40" y="90">end</text> 
then accessible description = "end"
 
ATK property description is end
relation RELATION_DESCRIBED_BY is end
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is end
IAccessible2 relation IA2_RELATION_DESCRIBED_BY is <not empty>
MSAA property accDescription is end
UIA TBD
property DescribedBy isNot <not empty>
// aria-describedby only
 if given
 <circle id="test" aria-describedby="t1" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" 
y="90">end</text> 
then accessible description = "end"
 
ATK property description is end
relation RELATION_DESCRIBED_BY is end
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is end
IAccessible2 relation IA2_RELATION_DESCRIBED_BY is <not empty>
MSAA property accDescription is end
UIA TBD
property DescribedBy isNot <not empty>
// desc, title
 if given
 <circle id="test" cx='50' cy='100' r='15'>
   <title>abc</title>
 <desc>123</desc>
 </circle> 
then 
accessible description = "123"
 
ATK property description is 123
relation RELATION_DESCRIBED_BY is 123
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is 123
MSAA property accDescription is 123
UIA TBD

Empty aria-describedby testable statements

// empty aria-describedby, desc, title
 if given
 <circle id="test" aria-describedby="" cx='50' cy='100' r='15'>
   <title>abc</title>
 <desc>123</desc>
 </circle> 
then accessible description = "123"
 
ATK property description is 123
relation RELATION_DESCRIBED_BY is 123
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is 123
MSAA property accDescription is 123
UIA property FullDescription isNot 123
// empty aria-describedby, desc
 if given
 <circle id="test" aria-describedby="" cx='50' cy='100' r='15'>
 <desc>12</desc>
 </circle> 
then accessible description = "12"
 
ATK property description is 12
relation RELATION_DESCRIBED_BY is 12
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is 12
MSAA property accDescription is 12
UIA property FullDescription isNot 12
// empty aria-describedby, title
 if given
 <circle id="test" aria-describedby="" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle> 

then accessible description = BLANK
 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA property FullDescription isNot <empty>
// empty aria-describedby, aria-label
 if given
 <circle id="test" aria-label='hello' aria-describedby="" cx='50' cy='100' r='15'/> 
then accessible description = BLANK
 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA property FullDescription isNot <empty>
// empty aria-describedby only
 if given
 <circle id="test" aria-describedby="" cx='50' cy='100' r='15'/> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Multiple idrefs in aria-describedby

// two valid idrefs
 if given
 <circle id="test" aria-describedby="t1 t2" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" 
y="90">the</text> <text id="t2" x="140" y="90">end</text> 
then accessible description = "the end"
 
ATK property description is the end
relation RELATION_DESCRIBED_BY is the end
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is the end
IAccessible2 relation IA2_RELATION_DESCRIBED_BY is <not empty>
MSAA property accDescription is the end
UIA TBD
property DescribedBy isNot <not empty>
// two valid idrefs, one with aria-describedby
 if given
 <circle id="test" aria-describedby="t1 t2" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" 
y="90">the</text> <text id="t2" x="140" y="90" aria-describedby='t3'>end</text> <text id="t3" x="180" 
y="90">finish</text> 
then accessible description = "the end"
 
ATK property description is the end
relation RELATION_DESCRIBED_BY is the end
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is the end
IAccessible2 relation IA2_RELATION_DESCRIBED_BY is <not empty>
MSAA property accDescription is the end
UIA TBD
property DescribedBy isNot <not empty>
// one valid idref, id t1 invalid
 if given
 <circle id="test" aria-describedby="t1 t2" cx='50' cy='100' r='15'/>
 <text id="t2" x="40" 
y="90">end</text> 
then accessible description = "end"
 
ATK property description is end
relation RELATION_DESCRIBED_BY is end
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is end
IAccessible2 relation IA2_RELATION_DESCRIBED_BY is <not empty>
MSAA property accDescription is end
UIA TBD
property DescribedBy isNot <not empty>

Title is description

// description aria-labelledby, title
 if given
 <circle id="test" aria-labelledby="t1" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle>
 <text 
id="t1" x="40" y="90">end</text> 
then accessible description = "abc"
 
ATK property description is abc
relation RELATION_DESCRIBED_BY is abc
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is abc
MSAA property accDescription is abc
UIA TBD
// description aria-label, title
 if given
 <circle id="test" aria-label="bob" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle> 
then accessible description = "abc"
ATK property description is abc
relation RELATION_DESCRIBED_BY is abc
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is abc
MSAA property accDescription is abc
UIA TBD

Title is same as accessible name

// aria-labelledby, title
 if given
 <circle id="test" aria-labelledby="t1" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle>
 <text id="t1" x="40" y="90">abc</text> 
then accessible description = BLANK
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// aria-label, title
 if given
 <circle id="test" aria-label="bob" cx='50' cy='100' r='15'>
   <title>bob</title>
 </circle> 
then accessible description = BLANK
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD

a element testable statements

// aria-labelledby, aria-label, xlink title
 if given
 <a id="test" aria-labelledby="t1" aria-label="booth" href="../index.html" xlink:title="table" >
 </a>
 <text id="t1" x="40" y="90">end</text> 
then accessible description = BLANK 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// aria-labelledby, xlink title
 if given
 <a id="test" aria-labelledby="t1" href="../index.html" xlink:title="table" >
 </a>
 <text id="t1" x="40" y="90">end</text> 
then accessible description = BLANK 
 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// aria-label, xlink title
 if given
 <a id="test" aria-label="booth" href="../index.html" xlink:title="table" >
 </a> 
then accessible description = BLANK 
 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// title and xlink title
 if given
 <a id="test" href="../index.html" xlink:title="table" >
   <title>counter</title>
 </a> 
and aria-labelledby is not specified then accessible description = BLANK 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// xlink title only
 if given
 <a id="test" href="../index.html" xlink:title="table" >
 </a> 
then accessible description = BLANK
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD

Empty or all whitespace title/desc

// ellipse, empty title, empty desc
 if given
 <ellipse id="test" cx='40' cy='100' rx='25' ry='15'>
   <title>
 </title>
 <desc>
 </desc>
 </ellipse> 
then accessible description = BLANK
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// circle, empty title, whitespace desc
 if given
 <circle id="test" cx='10' cy='10' r='5'>
   <title>
 </title>
 <desc>   </desc>
 </circle> 
then accessible description = BLANK
 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// line, whitespace title, whitespace desc
 if given
 <line id="test" x1='10' y1='10' x2='50' y2='10'>
   <title> </title>
 <desc>		 </desc>
 </line> 
then accessible description = BLANK
 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// polygon, empty desc
 if given
 <polygon id="test" fill="magenta" points="850,75 958,137.5 958,262.5 850,325 742,262.6 742,137.5" >
 <desc>
 </desc>
 </polygon> 
then accessible description = BLANK
 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD
// rect, whitespace desc
 if given
 <rect id="test"  x='10' y='10' width='50' height='30'>
 <desc>		</desc>
 </rect> 
then accessible description = BLANK
 
ATK property description is <empty>
relation RELATION_DESCRIBED_BY is <empty>
relation RELATION_DESCRIPTION_FOR is test
AXAPI property AXHelp is <empty>
MSAA property accDescription empty true
UIA TBD

Testable statements for role

Path default role = img, properties and children testable statements

// path, aria-labelledby, aria-label, title, desc
 if given
 <path id="test" aria-labelledby="t1" aria-label="down" d="M 100 100 L 300 100 L 200 300 z" 
fill="red" >
   <title>abc</title>
 <desc>down</desc>
 </path>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, aria-labelledby, aria-label, title
 if given
 <path id="test" aria-labelledby="t1" aria-label="down" d="M 100 100 L 300 100 L 200 300 z" 
fill="red">
   <title>abc</title>
 </path>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, aria-labelledby, aria-label, desc
 if given
 <path id="test" aria-labelledby="t1" aria-label="down" d="M 100 100 L 300 100 L 200 300 z" 
fill="red" >
 <desc>abc</desc>
 </path>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, aria-labelledby, aria-label
 if given
 <path id="test" aria-labelledby="t1" aria-label="bob" d="M 100 100 L 300 100 L 200 300 z" 
fill="red"/>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, aria-labelledby, title
 if given
 <path id="test" aria-labelledby="t1" d="M 100 100 L 300 100 L 200 300 z" 
fill="red">
   <title>abc</title>
 </path>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, aria-labelledby, desc
 if given
 <path id="test" aria-labelledby="t1" d="M 100 100 L 300 100 L 200 300 z" 
fill="red">
 <desc>abc</desc>
 </path>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, aria-labelledby only
 if given
 <path id="test" aria-labelledby="t1" d="M 100 100 L 300 100 L 200 300 z" fill="red"/>
 <text 
id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, aria-label, title
 if given
 <path id="test" aria-label="hello" d="M 100 100 L 300 100 L 200 300 z" fill="red">
   <title>abc</title>
 </path> 
then 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, aria-label only
 if given
 <path id="test" aria-label="hello" d="M 100 100 L 300 100 L 200 300 z" fill="red"/> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, title only
 if given
 <path id="test" d="M 100 100 L 300 100 L 200 300 z" fill="red" >
   <title>abc</title>
 </path> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// path, desc only
 if given
 <path id="test" d="M 100 100 L 300 100 L 200 300 z" fill="red" >
 <desc>abc</desc>
 </path> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image

Basic shapes default role = img, properties and children testable statements

// aria-labelledby, aria-label, title
 if given
 <circle id="test" aria-labelledby="t1" aria-label="bob" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// aria-labelledby, aria-label
 if given
 <circle id="test" aria-labelledby="t1" aria-label="bob" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// aria-labelledby, title
 if given
 <circle id="test" aria-labelledby="t1" cx='50' cy='100' r='15'>
   <title>abc</title>
 </circle>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// aria-labelledby only
 if given
 <circle id="test" aria-labelledby="t1" cx='50' cy='100' r='15'/>
 <text id="t1" x="40" y="90">end</text> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// aria-label, title
 if given
 <circle id="test" aria-label="hello" cx='10' cy='10' r='5'>
   <title>abc</title>
 </circle> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// aria-label only
 if given
 <circle id="test" aria-label="hello" cx='10' cy='10' r='5'/> 
then 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// title only
 if given
 <circle id="test" cx='10' cy='100' r='5' >
   <title>abc</title>
 </circle> 
then 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image

Basic shapes default role = img

// rect, aria-label only
 if given
 <rect id="test" aria-label="hello" x='10' y='10' width='50' height='30'/> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// ellipse, title only
 if given
 <ellipse id="test" cx='50' cy='100' rx='25' ry='15'>
   <title>abc</title>
 </ellipse> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// line, aria-label only
 if given
 <line id="test" aria-label="hello" x1='10' y1='10' x2='50' y2='10'/> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// polyline, aria-label only
 if given
 <polyline id="test" aria-label="hello" fill="none" stroke="blue" stroke-width="10" points="50,375 150,375 150,325 250,325 250,375 350,375 350,250 450,250 450,375 550,375 550,175 650,175 650,375 750,375 750,100 850,100 850,375 950,375 950,25 1050,25 1050,375 1150,375" /> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// polygon, desc only
 if given
 <polygon id="test" fill="magenta" points="850,75 958,137.5 958,262.5 850,325 742,262.6 742,137.5" >
 <desc>built up area</desc>
 </polygon> 
then role = img 
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// mesh, aria-label only
 if given
 <mesh x="50" y="50" id="test" aria-label="hello">
 <meshrow> <meshpatch> <stop path="c  25,-25  75, 25  100,0" stop-color="lightblue" /> <stop path="c  25, 25 -25, 75  0,100" stop-color="purple" /> <stop path="c -25, 25 -75,-25 -100,0" stop-color="red" /> <stop path="c -25,-25, 25,-75" stop-color="purple" /> </meshpatch>
 <meshpatch>
 <stop path="c  25,-25  75, 25  100,0" /> <stop path="c  25, 25 -25, 75  0,100" stop-color="lightblue" /> <stop path="c -25, 25 -75,-25" stop-color="purple" />
 </meshpatch>
 </meshrow>
 <meshrow> 
 <meshpatch>
 <stop path="c  25, 25 -25, 75  0,100" />
 <stop path="c -25, 25 -75,-25 -100,0" stop-color="purple" />
 <stop path="c -25,-25, 25,-75" stop-color="lightblue" />
 </meshpatch>
 <meshpatch>
 <stop path="c  25, 25 -25, 75  0,100" />
 <stop path="c -25, 25 -75,-25" stop-color="lightblue" />
 </meshpatch>
 </meshrow>
 </mesh> 
then role = img
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image

Elements that may be in the accessibility tree (normal rules)

// foreignObject
 if given
 <foreignObject id="test" width="100" height="50" requiredExtensions="http://example.com/SVGExtensions/EmbeddedXHTML" aria-label="word wrap example">
 <body xmlns="http://www.w3.org/1999/xhtml">
 <p>Here is a paragraph that requires word wrap</p>
 </body>
 </foreignObject> 
then role = "group"
 
ATK property role is ROLE_PANEL
AXAPI property AXRole is AXGroup
property AXSubrole is AXGraphicsObject
property AXDescription is graphics object
MSAA property role is ROLE_SYSTEM_GROUPING
UIA property control type isNot group
// g
 if given
 <g id="test">
   <title>Venn Diagram</title>
 <circle cx='50' cy='50' r='20' aria-label="set A"/> <circle cx='50' cy='75' r='20' aria-label="set B"/>
 </g> 
then role = "group"
 
ATK property role is ROLE_PANEL
AXAPI property AXRole is AXGroup
property AXSubrole is AXGraphicsObject
property AXDescription is graphics object
MSAA property role is ROLE_SYSTEM_GROUPING
UIA property control type isNot group
// image
 if given
 <image id="test" x="200" y="200" width="100px" height="100px" href="myimage.png">
   <title>My image</title>
 </image> 
then role = "img"
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image
// svg
 if given
 <svg id="test" width="4in" height="3in" xmlns="http://www.w3.org/2000/svg">
 <desc>This graphic links to an external image</desc>
 <image x="200" y="200" width="100px" height="100px" 

href="myimage.png">
   <title>My image</title>
 </image>
 </svg> 
then role = "group"
 
ATK property role is ROLE_PANEL
AXAPI property AXRole is AXGroup
property AXSubrole is AXGraphicsObject
property AXDescription is graphics object
MSAA property role is ROLE_SYSTEM_GROUPING
UIA property control type isNot group
// use
 if given
 <defs>
 <rect id="MyRect" width="60" height="10"/>
 </defs>
 <use id="test" x="20" y="10" href="#MyRect"  aria-label="black bar"/> 
then role = "img"
 
ATK property role is ROLE_IMAGE
AXAPI property AXRole is AXImage
property AXSubrole is <nil>
property AXDescription is image
MSAA property role is ROLE_SYSTEM_GRAPHIC
UIA property control type isNot Image

Text elements

// text
 if given
 <text id="test" x="250" y="180" font-family="Verdana" font-size="64" fill="blue">Hello, out 

there!</text> 
then for role = "group"
 
ATK property role is ROLE_PANEL
AXAPI property AXRole is AXGroup
property AXSubrole is AXGraphicsObject
property AXDescription is graphics object
MSAA property role is ROLE_SYSTEM_GROUPING
UIA property control type isNot group
// textPath
 if given
 <text transform="rotate(45)">
 <textPath id="test" href="#path1">Text on a path1</textPath>
 </text> 
then role = "group"
 
ATK property role is ROLE_PANEL
AXAPI property AXRole is AXGroup
property AXSubrole is AXGraphicsObject
property AXDescription is graphics object
MSAA property role is ROLE_SYSTEM_GROUPING
UIA property control type isNot group
// tspan
 if given
 <text x="100" y="180" fill="blue" >But you <tspan id="test" dx="2em" dy="-50" font-weight="bold" 

fill="red" > are a peach </tspan> </text> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

HTML elements

// audio
 if given
 <html:audio id="test" src="file.mp3" controls="controls">
 </html:audio> 
then role = "application"
 
ATK property role is ATK_ROLE_AUDIO
AXAPI property AXRole is AXGroup
property AXSubrole is <nil>
property AXDescription is AXToolbar
MSAA property role is ROLE_SYSTEM_GROUPING
UIA property control type isNot Group
// canvas

TODO

// iframe

TODO

// source
 if given
 <html:video src="file.mp4" controls="controls"> <html:source id="test" src="file.webm" type='video/webm;codecs="vp8, vorbis"'/> <html:source src="file.mp4" type='video/mp4;codecs="avc1.42E01E, mp4a.40.2"'/>
 </html:video> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// video
 if given
 <html:video id="test" src="file.mp4" controls="controls">
 </html:video> 
then role = "application"
 
ATK property role is ATK_ROLE_VIDEO
AXAPI property AXRole is AXGroup
property AXSubrole is <nil>
property AXDescription is AXToolbar
MSAA property role is ROLE_SYSTEM_GROUPING
UIA property control type isNot Group

Role is none

Elements role is none

// foreignObject
 if given
 <foreignObject id="test" role="none" width="100" height="50" requiredExtensions="http://example.com/SVGExtensions/EmbeddedXHTML" >
 <body xmlns="http://www.w3.org/1999/xhtml">
 <p>Here is a paragraph that requires word wrap</p>
 </body>
 </foreignObject> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// g
 if given
 <g id="test"  role="none">
 <circle cx='50' cy='50' r='20' aria-label="set A"/> <circle cx='50' cy='75' r='20' aria-label="set B"/>
 </g> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// image
 if given
 <image id="test" x="200" y="200" width="100px" height="100px" href="myimage.png" role="none">
 </image> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// svg
 if given
 <svg id="test" width="4in" height="3in" xmlns="http://www.w3.org/2000/svg" role="none">
 <image x="200" y="200" width="100px" height="100px" href="myimage.png">
   <title>My image</title>
 </image>
 </svg> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// use
 if given
 <defs>
 <rect id="MyRect" width="60" height="10"/>
 </defs>
 <use id="test"  role="none" x="20" y="10" href="#MyRect"  aria-label="black bar"/> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Basic shapes role is none

// path, desc role = none
 if given
 <path id="test" d="M 100 100 L 300 100 L 200 300 z" fill="red" role="none" >
 </path> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// rect, role = none
 if given
 <rect id="test" x='10' y='10' width='50' height='30' role="none"/> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// ellipse, role = none
 if given
 <ellipse id="test" cx='40' cy='100' rx='25' ry='15' role="none">
 </ellipse> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// line, aria-label role = none
 if given
 <line id="test" aria-label="hello" x1='10' y1='10' x2='50' y2='10' role="none"/> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polyline, role = none
 if given
 <polyline id="test" fill="none" stroke="blue" stroke-width="10" points="50,375 150,375 150,325 250,325 250,375 350,375 350,250 450,250 450,375 550,375 550,175 650,175 650,375 750,375 750,100 850,100 850,375 950,375 950,25 1050,25 1050,375 1150,375" role="none"/> 
then NAOC 
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polygon, role = none
<polygon id="test" fill="magenta" points="850,75 958,137.5 958,262.5 850,325 742,262.6 742,137.5" role="none">
</polygon> 

then NAOC

ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// mesh, role = none
 if given
 <mesh x="50" y="50" id="test" role='none'>
 <meshrow> <meshpatch> <stop path="c 25,-25 75, 25 100,0" stop-color="lightblue" /> <stop path="c 25, 25 -25, 75 0,100" stop-color="purple" /> <stop path="c -25, 25 -75,-25 -100,0" stop-color="red" /> <stop path="c -25,-25, 25,-75" stop-color="purple" /> </meshpatch> <meshpatch>
 <stop path="c 25,-25 75, 25 100,0" /> <stop path="c 25, 25 -25, 75 0,100" stop-color="lightblue" /> <stop path="c -25, 25 -75,-25" stop-color="purple" />
 </meshpatch>
 </meshrow>
 <meshrow> <meshpatch>
 <stop path="c 25, 25 -25, 75 0,100" />
 <stop path="c -25, 25 -75,-25 -100,0" stop-color="purple" />
 <stop path="c -25,-25, 25,-75" stop-color="lightblue" />
 </meshpatch> <meshpatch>
 <stop path="c 25, 25 -25, 75 0,100" />
 <stop path="c -25, 25 -75,-25" stop-color="lightblue" />
 </meshpatch>
 </meshrow>
 </mesh> 
then NAOC 
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Text Elements role = none

// text
 if given
 <text id="test" x="250" y="180" font-family="Verdana" font-size="64" fill="blue" role="none">Hello, out 
there!</text> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// textPath
 if given
 <text transform="rotate(45)" role="none">
 <textPath id="test" href="#path1">Text on a path1</textPath>
 </text> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// tspan
 if given
 <text x="100" y="180" fill="blue"  role="none">But you <tspan id="test" dx="2em" dy="-50" font-weight="bold" fill="red" > are a peach </tspan> </text> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Role is presentation

Elements role is presentation

// foreignObject
 if given
 <foreignObject id="test" role="presentation" width="100" height="50" requiredExtensions="http://example.com/SVGExtensions/EmbeddedXHTML" >
 <body xmlns="http://www.w3.org/1999/xhtml">
 <p>Here is a paragraph that requires word wrap</p>
 </body>
 </foreignObject> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// g
 if given
 <g id="test"  role="presentation">
 <circle cx='50' cy='50' r='20' aria-label="set A"/> <circle cx='50' cy='75' r='20' aria-label="set B"/>
 </g> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// image
 if given
 <image id="test" x="200" y="200" width="100px" height="100px" href="myimage.png" role="presentation">
 </image> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// svg
 if given
 <svg id="test" width="4in" height="3in" xmlns="http://www.w3.org/2000/svg" role="presentation">
 <image x="200" y="200" width="100px" height="100px" href="myimage.png">
   <title>My image</title>
 </image>
 </svg> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// use
 if given
 <defs>
 <rect id="MyRect" width="60" height="10"/>
 </defs>
 <use id="test"  role="presentation" x="20" y="10" href="#MyRect" /> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Basic shapes role = presentation

// path, desc role = presentation
 if given
 <path id="test" d="M 100 100 L 300 100 L 200 300 z" fill="red" role="presentation" >
 </path> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// rect, role = presentation
 if given
 <rect id="test" x='10' y='10' width='50' height='30' role="presentation"/> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// ellipse, role = presentation
 if given
 <ellipse id="test" cx='40' cy='100' rx='25' ry='15' role="presentation"/> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// line, role = presentation
 if given
 <line id="test" x1='10' y1='10' x2='50' y2='10' role="presentation"/> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polyline, role = presentation
 if given
 <polyline id="test" fill="none" stroke="blue" stroke-width="10" points="50,375 150,375 150,325 250,325 250,375 350,375 350,250 450,250 450,375 550,375 550,175 650,175 650,375 750,375 750,100 850,100 850,375 950,375 950,25 1050,25 1050,375 1150,375" role="presentation"/> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polygon, role = presentation
 if given
 <polygon id="test" fill="magenta" points="850,75 958,137.5 958,262.5 850,325 742,262.6 742,137.5" role="presentation">
 </polygon> 
then NAOC 
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Text Elements role = presentation

// text
 if given
 <text id="test" x="250" y="180" font-family="Verdana" font-size="64" fill="blue" role="presentation">Hello, out 
there!</text> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// textPath
 if given
 <text transform="rotate(45)" role="presentation">
 <textPath id="test" href="#path1">Text on a path1</textPath>
 </text> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// tspan
 if given
 <text x="100" y="180" fill="blue" >But you <tspan id="test" dx="2em" dy="-50" font-weight="bold" 
fill="red" role="presentation" > are a peach </tspan> </text> 
then NAOC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

No role not included in accessibility tree testable statements

Elements no accessible object created

// animate
 if given
 <rect x='5' y='5' width='20' height='15'> <animate id="test" attributeName="opacity" from="1" to="0" 
dur="5s" repeatCount="indefinite" />
 </rect> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// animateMotion
 if given
 <path id="path1" d="M100,250 C 100,50 400,50 400,250" fill="none" stroke="blue" stroke-width="7.06"  />
 <path d="M-25,-12.5 L25,-12.5 L 0,-87.5 z" fill="yellow" stroke="red" stroke-width="7.06" >
 <animateMotion id="test" dur="6s" repeatCount="indefinite" rotate="auto" > <mpath href="#path1"/>
 </animateMotion>
 </path> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// animateTransform
 if given
 <rect width="100" height="100">
 <animateTransform id="test" attributeName="transform" type="scale" from="2" to="3" repeatCount="3" dur="4s" fill="freeze"/>
 </rect> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// clipPath
 if given
 <defs> <clipPath id="test">
 <rect x="0" y="0" width="200" height="100"/>
 </clipPath>
 </defs> <circle cx="100" cy="100" r="100" clip-path="url(#test)" /> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// cursor
 if given
 <cursor id="test" xlink:href="cursor.png" x="4" y="0"/> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// defs
 if given
 <defs id="test">
 <solidColor id="MyLightPurple" solid-color="#a080ff" solid-opacity="0.5"/>
 </defs> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// discard
 if given
 <ellipse cx="98.5" cy="17.5" rx="20.5" ry="17.5" fill="blue" stroke="black" transform="translate(9 252) translate(3 -296)"> <animateTransform attributeName="transform" begin="0s" dur="2s" fill="remove" calcMode="linear" type="translate" additive="sum" from="0 0" to="-18 305"/>
 <discard id="test" begin="2s"/>
 </ellipse> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// hatch
 if given
 <hatch  id="test" hatchUnits="userSpaceOnUse" pitch="5" rotate="135">
 <hatchpath stroke="#a080ff" stroke-width="2"/>
 </hatch> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// hatchPath
 if given
 <hatch hatchUnits="userSpaceOnUse" pitch="5" rotate="135">
 <hatchpath  id="test" stroke="#a080ff" stroke-width="2"/>
 </hatch> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// linearGradient
 if given
 <defs> <linearGradient id="test">
 <stop offset="5%" stop-color="#A8F" />
 <stop offset="95%" stop-color="#FDC" />
 </linearGradient>
 </defs> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// marker
 if given
 <marker id="test" orient="auto" overflow="visible">
 <rect x="-1" y="-0.5" width="1" height="1" fill="green"/>
 </marker> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// mask
 if given
 <defs>
 <linearGradient id="Gradient">
 <stop offset="0" stop-color="white" stop-opacity="0" />
 <stop offset="1" stop-color="white" stop-opacity="1" />
 </linearGradient>
 <mask id="test">
 <rect x="0" y="0" width="200" height="200" fill="url(#Gradient)"/>
 </mask>
 </defs>
 <rect x="0" y="0" width="200" height="200" fill="red" mask="url(#test)" /> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// meshPatch
 if given
 <mesh x="50" y="50" id="example">
 <meshrow> <meshpatch id="test"> <stop path="c  25,-25  75, 25  100,0" stop-color="lightblue" /> <stop path="c  25, 25 -25, 75  0,100" stop-color="purple" /> <stop path="c -25, 25 -75,-25 -100,0" stop-color="red" /> <stop path="c -25,-25, 25,-75" stop-color="purple" /> </meshpatch>
 <meshpatch>
 <stop path="c  25,-25  75, 25  100,0" /> <stop path="c  25, 25 -25, 75  0,100" stop-color="lightblue" /> <stop path="c -25, 25 -75,-25" stop-color="purple" />
 </meshpatch>
 </meshrow>
 <meshrow> 
 <meshpatch>
 <stop path="c  25, 25 -25, 75  0,100" />
 <stop path="c -25, 25 -75,-25 -100,0" stop-color="purple" />
 <stop path="c -25,-25, 25,-75" stop-color="lightblue" />
 </meshpatch>
 <meshpatch>
 <stop path="c  25, 25 -25, 75  0,100" />
 <stop path="c -25, 25 -75,-25" stop-color="lightblue" />
 </meshpatch>
 </meshrow>
 </mesh> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// meshRow
 if given
 <mesh x="50" y="50" id="example">
 <meshrow id="test"> <meshpatch> <stop path="c  25,-25  75, 25  100,0" stop-color="lightblue" /> <stop path="c  25, 25 -25, 75  0,100" stop-color="purple" /> <stop path="c -25, 25 -75,-25 -100,0" stop-color="red" /> <stop path="c -25,-25, 25,-75" stop-color="purple" /> </meshpatch>
 <meshpatch>
 <stop path="c  25,-25  75, 25  100,0" /> <stop path="c  25, 25 -25, 75  0,100" stop-color="lightblue" /> <stop path="c -25, 25 -75,-25" stop-color="purple" />
 </meshpatch>
 </meshrow>
 <meshrow> 
 <meshpatch>
 <stop path="c  25, 25 -25, 75  0,100" />
 <stop path="c -25, 25 -75,-25 -100,0" stop-color="purple" />
 <stop path="c -25,-25, 25,-75" stop-color="lightblue" />
 </meshpatch>
 <meshpatch>
 <stop path="c  25, 25 -25, 75  0,100" />
 <stop path="c -25, 25 -75,-25" stop-color="lightblue" />
 </meshpatch>
 </meshrow>
 </mesh> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// metadata
 if given
 <metadata id="test"> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#" xmlns:dc = "http://purl.org/dc/elements/1.1/" > <rdf:Description about="http://example.org/myfoo" dc:title="MyFoo Financial Report" dc:language="en" >
 </rdf:Description> </rdf:RDF> </metadata> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// mpath
 if given
 <path id="path1" d="M100,250 C 100,50 400,50 400,250" fill="none" stroke="blue" stroke-width="7.06" />
 <path d="M-25,-12.5 L25,-12.5 L 0,-87.5 z" fill="yellow" stroke="red" stroke-width="7.06" > <animateMotion dur="6s" repeatCount="indefinite" rotate="auto" >
 <mpath id="test" xlink:href="#path1"/>
 </animateMotion>
 </path> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// pattern
 if given
 <pattern id="test" x="10" y="10" width="20" height="20">
 <rect x="5" y="5" width="10" height="10"/>
 </pattern> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// radialGradient
 if given
 <radialGradient id="test" gradientUnits="userSpaceOnUse" cx="150" cy="100" r="100">
 <stop offset="0%"  stop-color="#A8F" />
 <stop offset="50%"  stop-color="#FDC" />
 <stop offset="100%" stop-color="#A8F" />
 </radialGradient> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// script
 if given
   <script type="text/javascript">
    // <![CDATA[
    function change(evt) {
      var target = evt.target;
      var radius = target.getAttribute("r");

      if (radius == 15) {
        radius = 45;
      } else {
        radius = 15;
      }

      target.setAttribute("r",radius);
   }
   // ]]>
  </script>

  <circle cx="50" cy="50" r="45" fill="green"
          onclick="change(evt)" />
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// set

TODO

// solidColor
 if given
 <defs>
 <solidColor id="test" solid-color="#a080ff" solid-opacity="0.5"/>
 </defs> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// stop
 if given
<pre>
 if given
 <defs> <linearGradient id="lg">
 <stop id="test" offset="5%" stop-color="#A8F" />
 <stop offset="95%" stop-color="#FDC" />
 </linearGradient>
 </defs> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// style
 if given
 <style id="test">@import url(mystyles.css);</style> 
then for NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// switch
 if given
      <switch id='test'>
        <g systemLanguage="en-UK">
            <text y="20" x="10">UK English</text>
        </g>
        <g systemLanguage="en">
            <text y="20" x="10">English</text>
        </g>       
<title id="alt">alt text</title>
    </switch>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// symbol
 if given
 <symbol id="test" viewBox="0 0 20 20">
 <desc>MySymbol - four rectangles in a grid</desc>
 <rect x="1" y="1" width="8" height="8"/>
 <rect x="11" y="1" width="8" height="8"/>
 <rect x="1" y="11" width="8" 
height="8"/>
 <rect x="11" y="11" width="8" height="8"/>
 </symbol> 
then for NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// title
 if given
   <title id="test">abc</title> 
then for NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// track

TODO

// view

TODO

Basic shapes and path

// path
if given
 <path id="test" d="M 100 100 L 300 100 L 200 300 z" fill="red" stroke="blue" stroke-width="3" /> 
then NOAC 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// rect
 if given
 <rect id="test" x='10' y='10' width='50' height='30' /> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// circle
 if given
 <circle id="test" cx='10' cy='10' r='5'/> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// ellipse
 if given
 <ellipse id="test" cx='40' cy='100' rx='25' ry='15' /> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// line
 if given
 <line id="test" x1='10' y1='10' x2='50' y2='10' /> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polyline
 if given
 <polyline id="test" fill="none" stroke="blue" stroke-width="10" points="50,375 150,375 150,325 250,325 250,375 350,375 350,250 450,250 450,375 550,375 550,175 650,175 650,375 750,375 750,100 850,100 850,375 950,375 950,25 1050,25 1050,375 1150,375" /> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polygon
 if given
 <polygon id="test" fill="magenta" points="850,75 958,137.5 958,262.5 850,325 742,262.6 742,137.5" /> 
then NOAC 
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// mesh
 if given
 <mesh x="50" y="50" id="test">
 <meshrow> <meshpatch> <stop path="c  25,-25  75, 25  100,0" stop-color="lightblue" /> <stop path="c  25, 25 -25, 75  0,100" stop-color="purple" /> <stop path="c -25, 25 -75,-25 -100,0" stop-color="red" /> <stop path="c -25,-25, 25,-75" stop-color="purple" /> </meshpatch>
 <meshpatch>
 <stop path="c  25,-25  75, 25  100,0" /> <stop path="c  25, 25 -25, 75  0,100" stop-color="lightblue" /> <stop path="c -25, 25 -75,-25" stop-color="purple" />
 </meshpatch>
 </meshrow>
 <meshrow> 
 <meshpatch>
 <stop path="c  25, 25 -25, 75  0,100" />
 <stop path="c -25, 25 -75,-25 -100,0" stop-color="purple" />
 <stop path="c -25,-25, 25,-75" stop-color="lightblue" />
 </meshpatch>
 <meshpatch>
 <stop path="c  25, 25 -25, 75  0,100" />
 <stop path="c -25, 25 -75,-25" stop-color="lightblue" />
 </meshpatch>
 </meshrow>
 </mesh> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Filter elements no accessible object created

// filter
 if given
 <defs>
    <filter id="test" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"  />
      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
                          specularExponent="20" lighting-color="#bbbbbb"  
                          result="specOut">
        <fePointLight x="-5000" y="-10000" z="20000" />
      </feSpecularLighting>
      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
      <feMerge>
        <feMergeNode in="offsetBlur"/>
        <feMergeNode in="litPaint"/>
      </feMerge>
    </filter>
  </defs>
  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  <g filter="url(#test)" >
	  <g>
      <path fill="none" stroke="#D90000" stroke-width="10" 
            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
      <path fill="#D90000" 
            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
        <text x="52" y="76">SVG</text>
      </g>
    </g>
  </g>
 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feBlend
 if given
 	<defs>
        <filter id="screen" filterUnits="userSpaceOnUse" 
       		x="0" y="0" width="1200" height="400">
                <feOffset dx="-400" in="SourceGraphic" result="g" width="400" height="400"/>
                <feOffset dx="-800" in="SourceGraphic" result="b" width="400" height="400"/>
                <feBlend id='test' in="SourceGraphic" in2="g" mode="screen"/>
                <feBlend in2="b" mode="screen"/>
        </filter>
    </defs>
  
 <g filter="url(#screen)">
  <circle cx="24" cy="50" r="14"/>
 </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feColorMatrix
 if given
   <defs>
       <filter id = "half">
        <feColorMatrix id='test' in = "SourceGraphic" type = "matrix" values = " 0.0 0.5 0.5 0.0 0.0 0.5 0.0 0.5 0.0 0.0 0.5 0.5 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0"/>
    </filter>
    </defs>
  
 <g filter="url(#half)">
  <circle cx="24" cy="50" r="14"/>
 </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feComponentTransfer
 if given
  <defs>
      <filter id="r2" filterRes="400 400">
            <feComponentTransfer  id="test">
                <feFuncR type="linear" slope="255"/>
                <feFuncG type="linear" slope="0"/>
                <feFuncB type="linear" slope="0"/>
                <feFuncA type="linear" slope="255"/>
            </feComponentTransfer>
            <feMorphology operator="erode" radius="3"/>
        </filter> 
  </defs>
 <g filter="url(#r2)">
  <circle cx="24" cy="50" r="14"/>
 </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feComposite
 if given
 <defs>
    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur" />
      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
                          specularExponent="20" lighting-color="#bbbbbb"  
                          result="specOut">
        <fePointLight x="-5000" y="-10000" z="20000" />
      </feSpecularLighting>
      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut" id="test" />
      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
      <feMerge>
        <feMergeNode in="offsetBlur"/>
        <feMergeNode in="litPaint"/>
      </feMerge>
    </filter>
  </defs>
  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  <g filter="url(#MyFilter)" >
	  <g>
      <path fill="none" stroke="#D90000" stroke-width="10" 
            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
      <path fill="#D90000" 
            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
        <text x="52" y="76">SVG</text>
      </g>
    </g>
  </g>
 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feConvolveMatrix
    <filter id="convolve">
      <feConvolveMatrix id="test" preserveAlpha="" kernelMatrix="1 0 0 0 0 0 0 0 -1" bias="0.5"/>
    </filter>

    <g id="flower">
    <g stroke = "tomato" fill = "peru" filter = "url(#convolve)">
        <rect x = "10%" y = "10%" width = "40%" height = "40%"/>
        <rect x = "55%" y = "10%" width = "40%" height = "40%"/>
        <rect x = "10%" y = "55%" width = "40%" height = "40%"/>
        <rect x = "55%" y = "55%" width = "40%" height = "40%"/>
    </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feDiffuseLighting
if given
   <filter id = "i1">
       <feDiffuseLighting id='test' result = "diffOut" in = "SourceGraphic" diffuseConstant = "1.2" lighting-color = "white">
           <fePointLight x = "400" y = "400" z = "150" pointsAtX = "0" pointsAtY = "0" pointsAtZ = "0"/>
       </feDiffuseLighting>
       <feComposite in = "SourceGraphic" in2 = "diffOut" operator = "arithmetic" k1 = "1" k2 = "0" k3 = "0" k4 = "0"/>
   </filter>
   <g stroke = "tomato" fill = "peru" filter = "url(#i1)">
       <rect x = "10%" y = "10%" width = "40%" height = "40%"/>
       <rect x = "55%" y = "10%" width = "40%" height = "40%"/>
       <rect x = "10%" y = "55%" width = "40%" height = "40%"/>
       <rect x = "55%" y = "55%" width = "40%" height = "40%"/>
   </g>
 then NOAC
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feDistantLight
   <filter id = "i1">
        <feGaussianBlur in = "SourceAlpha" stdDeviation = "8" result = "blur1"/>
        <feSpecularLighting result = "specOut" in = "blur1" specularConstant = "1.2" specularExponent = "12" lighting-color = "#bbbbbb">
            <feDistantLight azimuth = "45" elevation = "45" id="test" />
        </feSpecularLighting>
        <feComposite in = "SourceGraphic" in2 = "specOut" operator = "arithmetic" k1 = "0" k2 = "1" k3 = "1" k4 = "0"/>
    </filter>
    <g stroke = "tomato" fill = "peru" filter = "url(#i1)">
        <rect x = "10%" y = "10%" width = "40%" height = "40%"/>
        <rect x = "55%" y = "10%" width = "40%" height = "40%"/>
        <rect x = "10%" y = "55%" width = "40%" height = "40%"/>
        <rect x = "55%" y = "55%" width = "40%" height = "40%"/>
    </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feDropShadow
 if given
  <defs>
    <filter id="shadow">
      <feDropShadow id='test' dx="4" dy="8" stdDeviation="4"/>
    </filter>
  </defs>

  <circle cx="50%" cy="50%" r="80"
      style="fill:blue; filter:url(#shadow);"/>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feFlood
 if given
  <defs>
    <filter id="shadow">
      <feFlood id='test' flood-color="flood-color-of-feDropShadow"
    flood-opacity="flood-opacity-of-feDropShadow"/>
    </filter>
  </defs>

  <circle cx="50%" cy="50%" r="80"
      style="fill:blue; filter:url(#shadow);"/>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feFuncA
 if given
  <defs>
      <filter id="r2" filterRes="400 400">
            <feComponentTransfer>
                <feFuncR type="linear" slope="255"/>
                <feFuncG type="linear" slope="0"/>
                <feFuncB type="linear" slope="0"/>
                <feFuncA id="test" type="linear" slope="255"/>
            </feComponentTransfer>
            <feMorphology operator="erode" radius="3"/>
        </filter> 
  </defs>
 <g filter="url(#r2)">
  <circle cx="24" cy="50" r="14"/>
 </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feFuncB
 if given
  <defs>
      <filter id="r2" filterRes="400 400">
            <feComponentTransfer>
                <feFuncR type="linear" slope="255"/>
                <feFuncG type="linear" slope="0"/>
                <feFuncB id="test" type="linear" slope="0"/>
                <feFuncA type="linear" slope="255"/>
            </feComponentTransfer>
            <feMorphology operator="erode" radius="3"/>
        </filter> 
  </defs>
 <g filter="url(#r2)">
  <circle cx="24" cy="50" r="14"/>
 </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feFuncG
 if given
  <defs>
      <filter id="r2" filterRes="400 400">
            <feComponentTransfer>
                <feFuncR type="linear" slope="255"/>
                <feFuncG id="test" type="linear" slope="0"/>
                <feFuncB type="linear" slope="0"/>
                <feFuncA type="linear" slope="255"/>
            </feComponentTransfer>
            <feMorphology operator="erode" radius="3"/>
        </filter> 
  </defs>
 <g filter="url(#r2)">
  <circle cx="24" cy="50" r="14"/>
 </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feFuncR
 if given
  <defs>
      <filter id="r2" filterRes="400 400">
            <feComponentTransfer>
                <feFuncR id="test" type="linear" slope="255"/>
                <feFuncG type="linear" slope="0"/>
                <feFuncB type="linear" slope="0"/>
                <feFuncA type="linear" slope="255"/>
            </feComponentTransfer>
            <feMorphology operator="erode" radius="3"/>
        </filter> 
  </defs>
 <g filter="url(#r2)">
  <circle cx="24" cy="50" r="14"/>
 </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feGaussianBlur
 if given
 <defs>
    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur" id="test"/>
      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
                          specularExponent="20" lighting-color="#bbbbbb"  
                          result="specOut">
        <fePointLight x="-5000" y="-10000" z="20000" />
      </feSpecularLighting>
      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
      <feMerge>
        <feMergeNode in="offsetBlur"/>
        <feMergeNode in="litPaint"/>
      </feMerge>
    </filter>
  </defs>
  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  <g filter="url(#MyFilter)" >
	  <g>
      <path fill="none" stroke="#D90000" stroke-width="10" 
            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
      <path fill="#D90000" 
            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
        <text x="52" y="76">SVG</text>
      </g>
    </g>
  </g>
 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feImage
 if given
    <filter id = "i1" x = "0%" y = "0%" width = "100%" height = "100%">
        <feImage id='test' xlink:href = "../images/nova.png"/>
    </filter>
    <g>
        <rect x = "0" y = "0" width = "100%" height = "100%" filter = "url(#i1)"/>
    </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feMerge
 if given
 <defs>
    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
                          specularExponent="20" lighting-color="#bbbbbb"  
                          result="specOut">
        <fePointLight x="-5000" y="-10000" z="20000" />
      </feSpecularLighting>
      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
      <feMerge id="test">
        <feMergeNode in="offsetBlur"/>
        <feMergeNode in="litPaint"/>
      </feMerge>
    </filter>
  </defs>
  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  <g filter="url(#MyFilter)" >
	  <g>
      <path fill="none" stroke="#D90000" stroke-width="10" 
            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
      <path fill="#D90000" 
            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
        <text x="52" y="76">SVG</text>
      </g>
    </g>
  </g>
 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feMergeNode
 if given
 <defs>
    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
                          specularExponent="20" lighting-color="#bbbbbb"  
                          result="specOut">
        <fePointLight x="-5000" y="-10000" z="20000" />
      </feSpecularLighting>
      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
      <feMerge>
        <feMergeNode id="test" in="offsetBlur"/>
        <feMergeNode in="litPaint"/>
      </feMerge>
    </filter>
  </defs>
  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  <g filter="url(#MyFilter)" >
	  <g>
      <path fill="none" stroke="#D90000" stroke-width="10" 
            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
      <path fill="#D90000" 
            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
        <text x="52" y="76">SVG</text>
      </g>
    </g>
  </g>
 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feMorphology
 if given
  <defs>
      <filter id="r2" filterRes="400 400">
            <feComponentTransfer>
                <feFuncR type="linear" slope="255"/>
                <feFuncG type="linear" slope="0"/>
                <feFuncB type="linear" slope="0"/>
                <feFuncA type="linear" slope="255"/>
            </feComponentTransfer>
            <feMorphology  id="test" operator="erode" radius="3"/>
        </filter> 
  </defs>
 <g filter="url(#r2)">
  <circle cx="24" cy="50" r="14"/>
 </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false


// feOffset
 if given
 <defs>
    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
      <feOffset id="test" in="blur" dx="4" dy="4" result="offsetBlur"/>
      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
                          specularExponent="20" lighting-color="#bbbbbb"  
                          result="specOut">
        <fePointLight x="-5000" y="-10000" z="20000" />
      </feSpecularLighting>
      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
      <feMerge>
        <feMergeNode in="offsetBlur"/>
        <feMergeNode in="litPaint"/>
      </feMerge>
    </filter>
  </defs>
  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  <g filter="url(#MyFilter)" >
	  <g>
      <path fill="none" stroke="#D90000" stroke-width="10" 
            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
      <path fill="#D90000" 
            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
        <text x="52" y="76">SVG</text>
      </g>
    </g>
  </g>
 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// fePointLight
 if given
 <defs>
    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" 
                          specularExponent="20" lighting-color="#bbbbbb"  
                          result="specOut">
        <fePointLight x="-5000" y="-10000" z="20000" id="test" />
      </feSpecularLighting>
      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
      <feMerge>
        <feMergeNode in="offsetBlur"/>
        <feMergeNode in="litPaint"/>
      </feMerge>
    </filter>
  </defs>
  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  <g filter="url(#MyFilter)" >
	  <g>
      <path fill="none" stroke="#D90000" stroke-width="10" 
            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
      <path fill="#D90000" 
            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
        <text x="52" y="76">SVG</text>
      </g>
    </g>
  </g>
 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feSpecularLighting
 if given
 <defs>
    <filter id="MyFilter" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="120">
      <feGaussianBlur in="SourceAlpha" stdDeviation="4" result="blur"/>
      <feOffset in="blur" dx="4" dy="4" result="offsetBlur"/>
      <feSpecularLighting in="blur" surfaceScale="5" specularConstant=".75" id="test"
                          specularExponent="20" lighting-color="#bbbbbb"  
                          result="specOut">
        <fePointLight x="-5000" y="-10000" z="20000" />
      </feSpecularLighting>
      <feComposite in="specOut" in2="SourceAlpha" operator="in" result="specOut"/>
      <feComposite in="SourceGraphic" in2="specOut" operator="arithmetic" 
                   k1="0" k2="1" k3="1" k4="0" result="litPaint"/>
      <feMerge>
        <feMergeNode in="offsetBlur"/>
        <feMergeNode in="litPaint"/>
      </feMerge>
    </filter>
  </defs>
  <rect x="1" y="1" width="198" height="118" fill="#888888" stroke="blue" />
  <g filter="url(#MyFilter)" >
	  <g>
      <path fill="none" stroke="#D90000" stroke-width="10" 
            d="M50,90 C0,90 0,30 50,30 L150,30 C200,30 200,90 150,90 z" />
      <path fill="#D90000" 
            d="M60,80 C30,80 30,40 60,40 L140,40 C170,40 170,80 140,80 z" />
      <g fill="#FFFFFF" stroke="black" font-size="45" font-family="Verdana" >
        <text x="52" y="76">SVG</text>
      </g>
    </g>
  </g>
 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feSpotLight
 if given
     </desc>
    <filter id = "i1">
        <feGaussianBlur in = "SourceAlpha" stdDeviation = "8" result = "blur1"/>
        <feDiffuseLighting result = "diffOut" in = "SourceGraphic" diffuseConstant = "20" lighting-color = "white">
            <feSpotLight id='test' x = "800" y = "800" z = "400" pointsAtX = "0" pointsAtY = "0" pointsAtZ = "0" limitingConeAngle = "9"/>
        </feDiffuseLighting>
        <feComposite in = "SourceGraphic" in2 = "diffOut" operator = "arithmetic" k1 = "1" k2 = "0" k3 = "0" k4 = "0"/>
    </filter>
    <g stroke = "tomato" fill = "peru" filter = "url(#i1)">
        <rect x = "10%" y = "10%" width = "40%" height = "40%"/>
        <rect x = "55%" y = "10%" width = "40%" height = "40%"/>
        <rect x = "10%" y = "55%" width = "40%" height = "40%"/>
        <rect x = "55%" y = "55%" width = "40%" height = "40%"/>
    </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feTile
 if given
    <filter id = "i1">
        <feImage x = "0" y = "0" width = "10%" height = "10%" result = "raster1" xlink:href = "../images/nova.png"/>
        <feTile id='test'/>
    </filter>
    <g>
        <rect x = "0" y = "0" width = "100%" height = "100%" filter = "url(#i1)"/>
    </g>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// feTurbulence
  <filter id="displacementFilter">
    <feTurbulence id='test' type="turbulence" baseFrequency="0.05"
        numOctaves="2" result="turbulence"/>
    <feDisplacementMap in2="turbulence" in="SourceGraphic"
        scale="50" xChannelSelector="R" yChannelSelector="G"/>
  </filter>

  <circle cx="100" cy="100" r="100"
      style="filter: url(#displacementFilter)"/>
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Ancestor aria-hidden

// rect, aria-label only, ancestor aria-hidden
 if given
 <g aria-hidden="true"> <rect id="test" aria-label="hello" x='10' y='10' width='50' height='30'/> </g> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// ellipse, title only, ancestor aria-hidden
 if given
 <g aria-hidden="true"> <ellipse id="test" cx='40' cy='100' rx='25' ry='15'>
   <title>abc</title>
 </ellipse> </g> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// line, aria-label only, ancestor aria-hidden
 if given
 <g aria-hidden="true"> <line id="test" aria-label="hello" x1='10' y1='10' x2='50' y2='10'/> </g> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polyline, aria-label only, ancestor aria-hidden
 if given
 <g aria-hidden="true"> <polyline id="test" aria-label="hello" fill="none" stroke="blue" stroke-width="10" points="50,375 150,375 150,325 250,325 250,375 350,375 350,250 450,250 450,375 550,375 550,175 650,175 650,375 750,375 750,100 850,100 850,375 950,375 950,25 1050,25 1050,375 1150,375" />
 </g> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polygon, desc only, ancestor aria-hidden
 if given
 <g aria-hidden="true">
 <polygon id="test" fill="magenta" points="850,75 958,137.5 958,262.5 850,325 742,262.6 742,137.5" >
 <desc>built up area</desc>
 </polygon>
 </g> 
then NOAC 
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Element aria-hidden

// rect, aria-label only, aria-hidden
 if given
 <rect id="test" aria-label="hello" x='10' y='10' width='50' height='30' aria-hidden="true" /> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// ellipse, title only, aria-hidden
 if given
 <ellipse id="test" cx='40' cy='100' rx='25' ry='15' aria-hidden="true" >
   <title>abc</title>
 </ellipse> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// line, aria-label only, aria-hidden
 if given
 <line id="test" aria-label="hello" x1='10' y1='10' x2='50' y2='10' aria-hidden="true" /> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polyline, aria-label only, aria-hidden
 if given
 <polyline id="test" aria-label="hello" fill="none" stroke="blue" stroke-width="10" points="50,375 150,375 150,325 250,325 250,375 350,375 350,250 450,250 450,375 550,375 550,175 650,175 650,375 750,375 750,100 850,100 850,375 950,375 950,25 1050,25 1050,375 1150,375" aria-hidden="true" /> 
then NOAC 
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// polygon, desc only, aria-hidden
 if given
 <polygon id="test" fill="magenta" points="850,75 958,137.5 958,262.5 850,325 742,262.6 742,137.5" aria-hidden="true" >
 <desc>built up area</desc>
 </polygon> 
then NOAC 
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false

Element display none

// circle, style property display none
 if given
 <circle cx="50" cy="50" r="40" id="test" style="display: none;" >
   <title>Mars</title>
 </circle> 
then NOAC 
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false
// circle, css style display none
 if given
 <style>
    /* <![CDATA[ */
    circle {display: none; }
    /* ]]> */
 </style>
 <circle cx="50" cy="50" r="40" id="test" >
   <title>Mars</title>
 </circle> 
then NOAC
 
ATK property accessible exists false
AXAPI property accessible exists false
MSAA property accessible exists false
UIA property accessible exists false