Add accessible actions for scrolling and page changes

Change-Id: I5f6fd352e1022abbe3a94088598f460b17692fca
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
This commit is contained in:
Frederik Gladhorn 2014-10-27 14:11:15 +01:00
parent 4ed39bed4e
commit 0867f0ae33
3 changed files with 117 additions and 1 deletions

View File

@ -2611,7 +2611,14 @@ struct QAccessibleActionStrings
decreaseAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Decrease"))), decreaseAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Decrease"))),
showMenuAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "ShowMenu"))), showMenuAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "ShowMenu"))),
setFocusAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "SetFocus"))), setFocusAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "SetFocus"))),
toggleAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Toggle"))) {} toggleAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Toggle"))),
scrollLeftAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Scroll Left"))),
scrollRightAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Scroll Right"))),
scrollUpAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Scroll Up"))),
scrollDownAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Scroll Down"))),
previousPageAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Previous Page"))),
nextPageAction(QStringLiteral(QT_TRANSLATE_NOOP("QAccessibleActionInterface", "Next Page")))
{}
const QString pressAction; const QString pressAction;
const QString increaseAction; const QString increaseAction;
@ -2619,6 +2626,12 @@ struct QAccessibleActionStrings
const QString showMenuAction; const QString showMenuAction;
const QString setFocusAction; const QString setFocusAction;
const QString toggleAction; const QString toggleAction;
const QString scrollLeftAction;
const QString scrollRightAction;
const QString scrollUpAction;
const QString scrollDownAction;
const QString previousPageAction;
const QString nextPageAction;
QString localizedDescription(const QString &actionName) QString localizedDescription(const QString &actionName)
{ {
@ -2634,6 +2647,20 @@ struct QAccessibleActionStrings
return QAccessibleActionInterface::tr("Sets the focus"); return QAccessibleActionInterface::tr("Sets the focus");
else if (actionName == toggleAction) else if (actionName == toggleAction)
return QAccessibleActionInterface::tr("Toggles the state"); return QAccessibleActionInterface::tr("Toggles the state");
else if (actionName == scrollLeftAction)
return QAccessibleActionInterface::tr("Scrolls to the left");
else if (actionName == scrollRightAction)
return QAccessibleActionInterface::tr("Scrolls to the right");
else if (actionName == scrollUpAction)
return QAccessibleActionInterface::tr("Scrolls up");
else if (actionName == scrollDownAction)
return QAccessibleActionInterface::tr("Scrolls down");
else if (actionName == previousPageAction)
return QAccessibleActionInterface::tr("Goes back a page");
else if (actionName == nextPageAction)
return QAccessibleActionInterface::tr("Goes to the next page");
return QString(); return QString();
} }
}; };
@ -2704,6 +2731,60 @@ const QString &QAccessibleActionInterface::toggleAction()
return accessibleActionStrings()->toggleAction; return accessibleActionStrings()->toggleAction;
} }
/*!
Returns the name of the scroll left default action.
\sa actionNames(), localizedActionName()
*/
const QString &QAccessibleActionInterface::scrollLeftAction()
{
return accessibleActionStrings()->scrollLeftAction;
}
/*!
Returns the name of the scroll right default action.
\sa actionNames(), localizedActionName()
*/
const QString &QAccessibleActionInterface::scrollRightAction()
{
return accessibleActionStrings()->scrollRightAction;
}
/*!
Returns the name of the scroll up default action.
\sa actionNames(), localizedActionName()
*/
const QString &QAccessibleActionInterface::scrollUpAction()
{
return accessibleActionStrings()->scrollUpAction;
}
/*!
Returns the name of the scroll down default action.
\sa actionNames(), localizedActionName()
*/
const QString &QAccessibleActionInterface::scrollDownAction()
{
return accessibleActionStrings()->scrollDownAction;
}
/*!
Returns the name of the previous page default action.
\sa actionNames(), localizedActionName()
*/
const QString &QAccessibleActionInterface::previousPageAction()
{
return accessibleActionStrings()->previousPageAction;
}
/*!
Returns the name of the next page default action.
\sa actionNames(), localizedActionName()
*/
const QString &QAccessibleActionInterface::nextPageAction()
{
return accessibleActionStrings()->nextPageAction;
}
/*! \internal */ /*! \internal */
QString qAccessibleLocalizedActionDescription(const QString &actionName) QString qAccessibleLocalizedActionDescription(const QString &actionName)
{ {

View File

@ -635,6 +635,12 @@ public:
static const QString &showMenuAction(); static const QString &showMenuAction();
static const QString &setFocusAction(); static const QString &setFocusAction();
static const QString &toggleAction(); static const QString &toggleAction();
static const QString &scrollLeftAction();
static const QString &scrollRightAction();
static const QString &scrollUpAction();
static const QString &scrollDownAction();
static const QString &nextPageAction();
static const QString &previousPageAction();
}; };
class Q_GUI_EXPORT QAccessibleImageInterface class Q_GUI_EXPORT QAccessibleImageInterface

View File

@ -193,4 +193,33 @@
action->doAction(QAccessibleActionInterface::decreaseAction()); action->doAction(QAccessibleActionInterface::decreaseAction());
} }
- (BOOL) accessibilityScroll : (UIAccessibilityScrollDirection) direction
{
QAccessibleInterface *iface = QAccessible::accessibleInterface(self.axid);
QAccessibleActionInterface *action = iface->actionInterface();
if (!action)
return NO;
switch (direction) {
case UIAccessibilityScrollDirectionRight:
action->doAction(QAccessibleActionInterface::scrollRightAction());
return YES;
case UIAccessibilityScrollDirectionLeft:
action->doAction(QAccessibleActionInterface::scrollLeftAction());
return YES;
case UIAccessibilityScrollDirectionUp:
action->doAction(QAccessibleActionInterface::scrollUpAction());
return YES;
case UIAccessibilityScrollDirectionDown:
action->doAction(QAccessibleActionInterface::scrollDownAction());
return YES;
case UIAccessibilityScrollDirectionNext:
action->doAction(QAccessibleActionInterface::nextPageAction());
return YES;
case UIAccessibilityScrollDirectionPrevious:
action->doAction(QAccessibleActionInterface::previousPageAction());
return YES;
}
return NO;
}
@end @end