Last Comment Bug 340825 - New ATK: Implement nsIAccessibleValue on nsAccessible
: New ATK: Implement nsIAccessibleValue on nsAccessible
Status: RESOLVED FIXED
: access
Product: Core
Classification: Components
Component: Disability Access APIs (show other bugs)
: Trunk
: x86 All
: -- normal (vote)
: ---
Assigned To: Aaron Leventhal
:
Mentors:
Depends on: 340822 475901
Blocks: newatk
  Show dependency treegraph
 
Reported: 2006-06-08 07:24 PDT by Aaron Leventhal
Modified: 2009-01-29 00:17 PST (History)
1 user (show)
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---


Attachments
See bug comment for description of changes (28.14 KB, patch)
2006-06-09 07:40 PDT, Aaron Leventhal
ginn.chen: review+
Details | Diff | Review
Patch for checkin (26.49 KB, patch)
2006-06-15 06:59 PDT, Aaron Leventhal
no flags Details | Diff | Review

Description Aaron Leventhal 2006-06-08 07:24:31 PDT
Any widget can have a value if it has aaa:valuenow/valuemin/valuemax attributes.

Therefore nsIAccessibleValue should be implemented by nsAccessible whenever there is a role which supports value.

if (mRoleMapEntry && mRoleMapEntry->valueRule != eNoValue) {
  // Support nsIAccessibleValue
}

If we put this in nsAccessible::QueryInterface one issue is that progress meters already implement nsIAccessibleValue would now inherit the interface twice. So, we will have to remove it from the deifinition of the nsXULProgresMeterAccessible class, but still implement the interface for that class, and thus make sure QI still works.
Comment 1 Aaron Leventhal 2006-06-08 07:33:48 PDT
Also remove nsXULProgressMeterAccessibleWrap and implement that in nsXULProgressMeterAccessible cross platform class.
Comment 2 Aaron Leventhal 2006-06-09 07:40:04 PDT
Created attachment 225006 [details] [diff] [review]
See bug comment for description of changes

1) Get rid of unnecessary nsAccessible::GetFinalValue(), just use GetValue()
2) Use nsresult return code instead of boolean success parameter for nsIAccessibleValue::setCurrentValue
3) Add support for minimumIncrement
4) Remove nsXULProgressMeterAccessibleWrap and put into cross platform class
5) Support nsIAccessibleValue in nsAccessible when a DHTML role is used that supports values
Comment 3 Ginn Chen 2006-06-12 22:57:00 PDT
Comment on attachment 225006 [details] [diff] [review]
See bug comment for description of changes

Most of the codes look good to me.

+    aIface->set_current_value = getMinimumIncrementCB;
It's a typo.

And we need to clean up accessible/src/atk/nsXULFormControlAccessible.cpp line 47-53.
Comment 4 Aaron Leventhal 2006-06-15 06:59:28 PDT
Created attachment 225693 [details] [diff] [review]
Patch for checkin
Comment 5 Aaron Leventhal 2006-06-15 08:17:50 PDT
Backing out for now. Checkin accidentally removed some files.

Note You need to log in before you can comment on or make changes to this bug.