Re: [orca-list] Orca, Firefox/Gecko and the LONGDESC attribute
- From: Janina Sajka <janina rednote net>
- To: ORCA-LIST <ORCA-LIST gnome org>
- Subject: Re: [orca-list] Orca, Firefox/Gecko and the LONGDESC attribute
- Date: Thu, 14 Oct 2010 16:45:33 -0400
Just checking that you did install the longdesc plugin module?
At least in Fedora it's not there by default, and you have to go get it
via the FF plugins/addons mechanism.
Janina
Jason White writes:
In response to a discussion on another mailing list, I tested Orca 2.30.2 and
Firefox 3.6.10 (Debian Iceweasel package from Experimental) with the following
test page (thanks to Leif Halvard Silli):
http://malform.no/testing/longdesc/img longdesc html
Orca didn't seem to recognize the LONGDESC attribute. To find out whether the
presence of the attribute was actually being disclosed in the accessibility
API events, I obtained debug logs. While not being an expert in reading these,
I didn't find anything that seemed to correspond to the LONGDESC attribute. On
the other hand, the logs tend to be lengthy.
Sample logs are attached. This could well be a Mozilla issue rather tahn an
Orca one.
vvvvv PROCESS OBJECT EVENT object:property-change:accessible-name vvvvv
OBJECT EVENT: object:property-change:accessible-name detail=(0,0)
app.name='Iceweasel' name=' Longdesc attribute test.' role='document frame' state='enabled focusable
sensitive' relations=''
^^^^^ PROCESS OBJECT EVENT object:property-change:accessible-name ^^^^^
DEQUEUED EVENT object:state-changed:busy <----------
vvvvv PROCESS OBJECT EVENT object:state-changed:busy vvvvv
OBJECT EVENT: object:state-changed:busy detail=(0,0)
app.name='Iceweasel' name=' Longdesc attribute test.' role='document frame' state='enabled focusable
sensitive' relations=''
BRAILLE LINE: 'Finished loading Longdesc attribute test..'
VISIBLE: 'Finished loading Longdesc attribute ', cursor=0
SPEECH OUTPUT: 'Finished loading Longdesc attribute test..'
---------> QUEUEING EVENT object:property-change:accessible-name
^^^^^ PROCESS OBJECT EVENT object:state-changed:busy ^^^^^
DEQUEUED EVENT document:load-complete <----------
vvvvv PROCESS OBJECT EVENT document:load-complete vvvvv
OBJECT EVENT: document:load-complete detail=(0,0)
app.name='Iceweasel' name=' Longdesc attribute test.' role='document frame' state='enabled focusable
sensitive' relations=''
^^^^^ PROCESS OBJECT EVENT document:load-complete ^^^^^
DEQUEUED EVENT object:property-change:accessible-name <----------
vvvvv PROCESS OBJECT EVENT object:property-change:accessible-name vvvvv
OBJECT EVENT: object:property-change:accessible-name detail=(0,0)
app.name='Iceweasel' name=' Longdesc attribute test. - Iceweasel' role='frame' state='active enabled
horizontal opaque resizable sensitive showing visible' relations='node child of'
^^^^^ PROCESS OBJECT EVENT object:property-change:accessible-name ^^^^^
---------> QUEUEING EVENT object:property-change:accessible-value
DEQUEUED EVENT object:property-change:accessible-value <----------
vvvvv PROCESS OBJECT EVENT object:property-change:accessible-value vvvvv
OBJECT EVENT: object:property-change:accessible-value detail=(0,0)
app.name='Iceweasel' name='None' role='progress bar' state='enabled horizontal opaque sensitive showing
visible' relations=''
generate speech for app.name='Iceweasel' name='None' role='progress bar' state='enabled horizontal opaque
sensitive showing visible' relations='' (args={'formatType': 'focused', 'useDefaultFormatting': False,
'role': ROLE_PROGRESS_BAR, 'mode': 'speech', 'alreadyFocused': True, 'recursing': True}) using '[] +
percentage + []'
percentage=['50 percent']
generate speech results:
50 percent
SPEECH OUTPUT: '50 percent'
^^^^^ PROCESS OBJECT EVENT object:property-change:accessible-value ^^^^^
---------> QUEUEING EVENT object:property-change:accessible-value
DEQUEUED EVENT object:property-change:accessible-value <----------
vvvvv PROCESS OBJECT EVENT object:property-change:accessible-value vvvvv
OBJECT EVENT: object:property-change:accessible-value detail=(0,0)
app.name='Iceweasel' name='None' role='progress bar' state='enabled horizontal opaque sensitive showing
visible' relations=''
^^^^^ PROCESS OBJECT EVENT object:property-change:accessible-value ^^^^^
---------> QUEUEING EVENT focus:
DEQUEUED EVENT focus: <----------
vvvvv PROCESS OBJECT EVENT focus: vvvvv
OBJECT EVENT: focus: detail=(0,0)
---------> QUEUEING EVENT object:state-changed:focused
app.name='Iceweasel' name=' Longdesc attribute test.' role='document frame' state='enabled focusable
focused horizontal opaque sensitive showing visible' relations='node child of'
LOCUS OF FOCUS: app='Iceweasel' name='' role='paragraph'
event='focus:'
Object deemed to be useless: [paragraph | ]
BRAILLE LINE: 'A quote about use of longdesc:'
VISIBLE: 'A quote about use of longdesc:', cursor=1
generate speech for app.name='Iceweasel' name='None' role='paragraph' state='enabled horizontal opaque
sensitive showing visible' relations='' (args={'formatType': 'unfocused', 'useDefaultFormatting': False,
'priorObj': <CORBA.Object 'IDL:Accessibility/Accessible:1.0' at 0x1d509e0>, 'role': ROLE_PARAGRAPH, 'mode':
'speech', 'recursing': True}) using 'newAncestors + newRowHeader + newColumnHeader + newRadioButtonGroup +
labelOrName + readOnly + textRole + currentLineText + allTextSelection + (mnemonic and (pause + mnemonic +
lineBreak) or []) + newNodeLevel + unselectedCell + (tutorial and (pause + tutorial) or [])'
default.findCommonAncestor...
...default.findCommonAncestor
newAncestors=[]
newRowHeader=[]
newColumnHeader=[]
newRadioButtonGroup=[]
labelOrName=[]
Gecko.script.py:isReadOnlyTextArea=False for app.name='Iceweasel' name='None' role='paragraph'
state='enabled horizontal opaque sensitive showing visible' relations=''
readOnly=[]
textRole=[]
currentLineText=['A quote about use of longdesc: \n']
allTextSelection=[]
mnemonic=[]
getNodeLevel - obj is defunct
File "<string>", line 1, in <module>
File "/usr/lib/pymodules/python2.6/orca/orca.py", line 1777, in main
start(pyatspi.Registry) # waits until we stop the registry
File "/usr/lib/pymodules/python2.6/orca/orca.py", line 1321, in start
registry.start(gil=settings.useGILIdleHandler)
File "/usr/lib/pymodules/python2.6/pyatspi/registry.py", line 364, in start
bonobo.main()
File "/usr/lib/pymodules/python2.6/orca/focus_tracking_presenter.py", line 931, in _dequeueEvent
self._processObjectEvent(event)
File "/usr/lib/pymodules/python2.6/orca/focus_tracking_presenter.py", line 709, in _processObjectEvent
s.processObjectEvent(event)
File "/usr/lib/pymodules/python2.6/orca/script.py", line 370, in processObjectEvent
self.listeners[key](event)
File "/usr/lib/pymodules/python2.6/orca/scripts/toolkits/Gecko/script.py", line 1819, in onFocus
orca.setLocusOfFocus(event, obj)
File "/usr/lib/pymodules/python2.6/orca/orca.py", line 263, in setLocusOfFocus
orca_state.locusOfFocus)
File "/usr/lib/pymodules/python2.6/orca/focus_tracking_presenter.py", line 1034, in locusOfFocusChanged
newLocusOfFocus)
File "/usr/lib/pymodules/python2.6/orca/scripts/toolkits/Gecko/script.py", line 2234, in
locusOfFocusChanged
newLocusOfFocus)
File "/usr/lib/pymodules/python2.6/orca/default.py", line 3042, in locusOfFocusChanged
priorObj=oldLocusOfFocus)
File "/usr/lib/pymodules/python2.6/orca/scripts/toolkits/Gecko/speech_generator.py", line 510, in
generateSpeech
generateSpeech(self, obj, **args))
File "/usr/lib/pymodules/python2.6/orca/speech_generator.py", line 101, in generateSpeech
return self.generate(obj, **args)
File "/usr/lib/pymodules/python2.6/orca/generator.py", line 247, in generate
globalsDict[arg] = self._methodsDict[arg](obj, **args)
File "/usr/lib/pymodules/python2.6/orca/speech_generator.py", line 906, in _generateNewNodeLevel
oldLevel = self._script.getNodeLevel(args.get('priorObj', None))
File "/usr/lib/pymodules/python2.6/orca/scripts/toolkits/Gecko/script.py", line 3852, in getNodeLevel
debug.printStack(debug.LEVEL_WARNING)
File "/usr/lib/pymodules/python2.6/orca/debug.py", line 136, in printStack
traceback.print_stack(None, 100, debugFile)
newNodeLevel=[]
unselectedCell=[]
tutorial=[]
generate speech results:
A quote about use of longdesc:
SPEECH OUTPUT: 'A quote about use of longdesc:
'
^^^^^ PROCESS OBJECT EVENT focus: ^^^^^
DEQUEUED EVENT object:state-changed:focused <----------
vvvvv PROCESS OBJECT EVENT object:state-changed:focused vvvvv
OBJECT EVENT: object:state-changed:focused detail=(1,0)
app.name='Iceweasel' name=' Longdesc attribute test.' role='document frame' state='enabled focusable
focused horizontal opaque sensitive showing visible' relations='node child of'
Finding top-level object for source.name= Longdesc attribute test.
--> obj.name=
--> obj.name=
--> obj.name=
--> obj.name= Longdesc attribute test. - Iceweasel
^^^^^ PROCESS OBJECT EVENT object:state-changed:focused ^^^^^
---------> QUEUEING EVENT object:text-changed:delete:system
DEQUEUED EVENT object:text-changed:delete:system <----------
vvvvv PROCESS OBJECT EVENT object:text-changed:delete:system vvvvv
OBJECT EVENT: object:text-changed:delete:system detail=(0,1)
---------> QUEUEING EVENT object:text-changed:insert:system
---------> QUEUEING EVENT object:children-changed:add:system
app.name='Iceweasel' name=' Longdesc attribute test.' role='document frame' state='enabled focusable
focused horizontal opaque sensitive showing visible' relations='node child of'
^^^^^ PROCESS OBJECT EVENT object:text-changed:delete:system ^^^^^
DEQUEUED EVENT object:text-changed:insert:system <----------
vvvvv PROCESS OBJECT EVENT object:text-changed:insert:system vvvvv
OBJECT EVENT: object:text-changed:insert:system detail=(0,1)
app.name='Iceweasel' name=' Longdesc attribute test.' role='document frame' state='enabled focusable
focused horizontal opaque sensitive showing visible' relations='node child of'
^^^^^ PROCESS OBJECT EVENT object:text-changed:insert:system ^^^^^
DEQUEUED EVENT object:children-changed:add:system <----------
vvvvv PROCESS OBJECT EVENT object:children-changed:add:system vvvvv
OBJECT EVENT: object:children-changed:add:system detail=(0,0)
app.name='Iceweasel' name=' Longdesc attribute test.' role='document frame' state='enabled focusable
focused horizontal opaque sensitive showing visible' relations='node child of'
^^^^^ PROCESS OBJECT EVENT object:children-changed:add:system ^^^^^
---------> QUEUEING EVENT object:property-change:accessible-value
DEQUEUED EVENT object:property-change:accessible-value <----------
vvvvv PROCESS OBJECT EVENT object:property-change:accessible-value vvvvv
OBJECT EVENT: object:property-change:accessible-value detail=(0,0)
app.name='Iceweasel' name='None' role='progress bar' state='enabled horizontal opaque sensitive showing
visible' relations=''
^^^^^ PROCESS OBJECT EVENT object:property-change:accessible-value ^^^^^
---------> QUEUEING EVENT object:property-change:accessible-value
DEQUEUED EVENT object:property-change:accessible-value <----------
vvvvv PROCESS OBJECT EVENT object:property-change:accessible-value vvvvv
OBJECT EVENT: object:property-change:accessible-value detail=(0,0)
app.name='Iceweasel' name='None' role='progress bar' state='enabled horizontal opaque sensitive showing
visible' relations=''
generate speech for app.name='Iceweasel' name='None' role='progress bar' state='enabled horizontal opaque
sensitive showing visible' relations='' (args={'formatType': 'focused', 'useDefaultFormatting': False,
'role': ROLE_PROGRESS_BAR, 'mode': 'speech', 'alreadyFocused': True, 'recursing': True}) using '[] +
percentage + []'
percentage=['100 percent']
generate speech results:
100 percent
SPEECH OUTPUT: '100 percent'
^^^^^ PROCESS OBJECT EVENT object:property-change:accessible-value ^^^^^
KEYEVENT: type=0
hw_code=116
modifiers=16400
event_string=(Down)
is_text=True
timestamp=17104813
time=1286935787.861030
orca.keyEcho: string to echo: Down
orca.isModifierKey: returning: False
----------> QUEUEING KEYPRESS 'Down' (116)
DEQUEUED KEYPRESS 'Down' (116) <----------
vvvvv PROCESS KEY PRESS EVENT Down vvvvv
---------> QUEUEING EVENT object:property-change:accessible-name
LOCUS OF FOCUS: app='Iceweasel' name='' role='paragraph'
event=None
---------> QUEUEING EVENT object:text-caret-moved
SPEECH OUTPUT: 'A quote about use of longdesc:
'
BRAILLE LINE: 'A quote about use of longdesc:'
VISIBLE: 'A quote about use of longdesc:', cursor=1
^^^^^ PROCESS KEY PRESS EVENT Down ^^^^^
DEQUEUED EVENT object:property-change:accessible-name <----------
vvvvv PROCESS OBJECT EVENT object:property-change:accessible-name vvvvv
OBJECT EVENT: object:property-change:accessible-name detail=(0,0)
app.name='Iceweasel' name='Something to keep in mind for the examples is that charts and graphs are not
usually interchangeable with data tables so they don't usually make good long descriptions.' role='image'
state='enabled horizontal opaque sensitive showing visible' relations=''
^^^^^ PROCESS OBJECT EVENT object:property-change:accessible-name ^^^^^
DEQUEUED EVENT object:text-caret-moved <----------
vvvvv PROCESS OBJECT EVENT object:text-caret-moved vvvvv
OBJECT EVENT: object:text-caret-moved detail=(0,0)
app.name='Iceweasel' name='None' role='paragraph' state='enabled horizontal opaque sensitive showing
visible' relations=''
^^^^^ PROCESS OBJECT EVENT object:text-caret-moved ^^^^^
KEYEVENT: type=1
hw_code=116
modifiers=16400
event_string=(Down)
is_text=True
timestamp=17104893
time=1286935787.940664
orca.isModifierKey: returning: False
----------> QUEUEING KEYRELEASE 'Down' (116)
DEQUEUED KEYRELEASE 'Down' (116) <----------
vvvvv PROCESS KEY RELEASE EVENT Down vvvvv
^^^^^ PROCESS KEY RELEASE EVENT Down ^^^^^
KEYEVENT: type=0
hw_code=116
modifiers=16400
event_string=(Down)
is_text=True
timestamp=17105693
time=1286935788.740769
orca.keyEcho: string to echo: Down
orca.isModifierKey: returning: False
----------> QUEUEING KEYPRESS 'Down' (116)
DEQUEUED KEYPRESS 'Down' (116) <----------
vvvvv PROCESS KEY PRESS EVENT Down vvvvv
LOCUS OF FOCUS: app='Iceweasel' name='Something to keep in mind for the examples is that charts and graphs
are not usually interchangeable with data tables so they don't usually make good long descriptions.'
role='image'
event=None
generate speech for app.name='Iceweasel' name='Something to keep in mind for the examples is that charts
and graphs are not usually interchangeable with data tables so they don't usually make good long
descriptions.' role='image' state='enabled horizontal opaque sensitive showing visible' relations=''
(args={'useDefaultFormatting': False, 'formatType': 'unfocused', 'role': ROLE_IMAGE, 'mode': 'speech',
'recursing': True}) using 'newAncestors + newRowHeader + newColumnHeader + newRadioButtonGroup +
labelAndName + allTextSelection + roleName + availability + (mnemonic and (pause + mnemonic + lineBreak) or
[]) + accelerator + newNodeLevel + unselectedCell + (tutorial and (pause + tutorial) or [])'
newAncestors=[]
newRowHeader=[]
newColumnHeader=[]
newRadioButtonGroup=[]
labelAndName=["Something to keep in mind for the examples is that charts and graphs are not usually
interchangeable with data tables so they don't usually make good long descriptions."]
allTextSelection=[]
roleName=['image']
availability=[]
mnemonic=[]
default.getKeyBinding: [u'', u'', u'']
accelerator=[]
newNodeLevel=[]
unselectedCell=[]
tutorial=[]
generate speech results:
Something to keep in mind for the examples is that charts and graphs are not usually interchangeable with
data tables so they don't usually make good long descriptions.
image
SPEECH OUTPUT: 'Something to keep in mind for the examples is that charts and graphs are not usually
interchangeable with data tables so they don't usually make good long descriptions. image
'
generate braille for app.name='Iceweasel' name='Something to keep in mind for the examples is that charts
and graphs are not usually interchangeable with data tables so they don't usually make good long
descriptions.' role='image' state='enabled horizontal opaque sensitive showing visible' relations=''
(args={'formatType': 'focused', 'useDefaultFormatting': False, 'includeContext': False, 'role': ROLE_IMAGE,
'mode': 'braille', 'recursing': True}) using '(imageLink and [Link(obj,
(asString(label + displayedText) or asString(name))
+ " " + asString(value + roleName))] or
[Component(obj, asString(label + displayedText + value +
roleName))])'
imageLink=None
label=[]
displayedText=["Something to keep in mind for the examples is that charts and graphs are not usually
interchangeable with data tables so they don't usually make good long descriptions."]
value=['']
roleName=['Image']
generate braille results:
Component: 'Something to keep in mind for the examples is that charts and graphs are not usually
interchangeable with data tables so they don't usually make good long descriptions. Image', 0
BRAILLE LINE: 'Something to keep in mind for the examples is that charts and graphs are not usually
interchangeable with data tables so they don't usually make good long descriptions. Image'
VISIBLE: 'Something to keep in mind for the exampl', cursor=1
^^^^^ PROCESS KEY PRESS EVENT Down ^^^^^
KEYEVENT: type=1
hw_code=116
modifiers=16400
event_string=(Down)
is_text=True
timestamp=17105757
time=1286935788.804664
orca.isModifierKey: returning: False
----------> QUEUEING KEYRELEASE 'Down' (116)
DEQUEUED KEYRELEASE 'Down' (116) <----------
vvvvv PROCESS KEY RELEASE EVENT Down vvvvv
^^^^^ PROCESS KEY RELEASE EVENT Down ^^^^^
KEYEVENT: type=0
hw_code=116
modifiers=16400
event_string=(Down)
is_text=True
timestamp=17111805
time=1286935794.852840
orca.keyEcho: string to echo: Down
orca.isModifierKey: returning: False
----------> QUEUEING KEYPRESS 'Down' (116)
DEQUEUED KEYPRESS 'Down' (116) <----------
vvvvv PROCESS KEY PRESS EVENT Down vvvvv
^^^^^ PROCESS KEY PRESS EVENT Down ^^^^^
KEYEVENT: type=1
hw_code=116
modifiers=16400
event_string=(Down)
is_text=True
timestamp=17111869
time=1286935794.916538
orca.isModifierKey: returning: False
----------> QUEUEING KEYRELEASE 'Down' (116)
DEQUEUED KEYRELEASE 'Down' (116) <----------
vvvvv PROCESS KEY RELEASE EVENT Down vvvvv
^^^^^ PROCESS KEY RELEASE EVENT Down ^^^^^
KEYEVENT: type=0
hw_code=116
modifiers=16400
event_string=(Down)
is_text=True
timestamp=17112541
time=1286935795.588740
orca.keyEcho: string to echo: Down
orca.isModifierKey: returning: False
----------> QUEUEING KEYPRESS 'Down' (116)
DEQUEUED KEYPRESS 'Down' (116) <----------
vvvvv PROCESS KEY PRESS EVENT Down vvvvv
^^^^^ PROCESS KEY PRESS EVENT Down ^^^^^
KEYEVENT: type=1
hw_code=116
modifiers=16400
event_string=(Down)
is_text=True
timestamp=17112621
time=1286935795.668493
orca.isModifierKey: returning: False
----------> QUEUEING KEYRELEASE 'Down' (116)
DEQUEUED KEYRELEASE 'Down' (116) <----------
vvvvv PROCESS KEY RELEASE EVENT Down vvvvv
^^^^^ PROCESS KEY RELEASE EVENT Down ^^^^^
KEYEVENT: type=0
hw_code=111
modifiers=16400
event_string=(Up)
is_text=True
timestamp=17113293
time=1286935796.340732
orca.keyEcho: string to echo: Up
orca.isModifierKey: returning: False
----------> QUEUEING KEYPRESS 'Up' (111)
DEQUEUED KEYPRESS 'Up' (111) <----------
vvvvv PROCESS KEY PRESS EVENT Up vvvvv
LOCUS OF FOCUS: app='Iceweasel' name='' role='paragraph'
event=None
SPEECH OUTPUT: 'A quote about use of longdesc:
'
BRAILLE LINE: 'A quote about use of longdesc:'
VISIBLE: 'A quote about use of longdesc:', cursor=1
^^^^^ PROCESS KEY PRESS EVENT Up ^^^^^
KEYEVENT: type=1
hw_code=111
modifiers=16400
event_string=(Up)
is_text=True
timestamp=17113357
time=1286935796.404517
orca.isModifierKey: returning: False
----------> QUEUEING KEYRELEASE 'Up' (111)
DEQUEUED KEYRELEASE 'Up' (111) <----------
vvvvv PROCESS KEY RELEASE EVENT Up vvvvv
^^^^^ PROCESS KEY RELEASE EVENT Up ^^^^^
KEYEVENT: type=0
hw_code=111
modifiers=16400
event_string=(Up)
is_text=True
timestamp=17114493
time=1286935797.540647
orca.keyEcho: string to echo: Up
orca.isModifierKey: returning: False
----------> QUEUEING KEYPRESS 'Up' (111)
DEQUEUED KEYPRESS 'Up' (111) <----------
vvvvv PROCESS KEY PRESS EVENT Up vvvvv
^^^^^ PROCESS KEY PRESS EVENT Up ^^^^^
KEYEVENT: type=1
hw_code=111
modifiers=16400
event_string=(Up)
is_text=True
timestamp=17114557
time=1286935797.604595
orca.isModifierKey: returning: False
----------> QUEUEING KEYRELEASE 'Up' (111)
_______________________________________________
orca-list mailing list
orca-list gnome org
http://mail.gnome.org/mailman/listinfo/orca-list
Visit http://live.gnome.org/Orca for more information on Orca.
The manual is at http://library.gnome.org/users/gnome-access-guide/nightly/ats-2.html
The FAQ is at http://live.gnome.org/Orca/FrequentlyAskedQuestions
Netiquette Guidelines are at http://live.gnome.org/Orca/FrequentlyAskedQuestions/NetiquetteGuidelines
Log bugs and feature requests at http://bugzilla.gnome.org
Find out how to help at http://live.gnome.org/Orca/HowCanIHelp
--
Janina Sajka, Phone: +1.443.300.2200
sip:janina asterisk rednote net
Chair, Open Accessibility janina a11y org
Linux Foundation http://a11y.org
Chair, Protocols & Formats
Web Accessibility Initiative http://www.w3.org/wai/pf
World Wide Web Consortium (W3C)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]