diff options
author | Qian Sui <qian.sui@samsung.com> | 2017-06-02 17:06:14 +0800 |
---|---|---|
committer | Qian Sui <qian.sui@samsung.com> | 2017-06-02 17:11:33 +0800 |
commit | 6315926cf3b3200b4a9c68e0d85cc8c856d5a955 (patch) | |
tree | 0189d88f476108e79e1a4699189c984dd61eb89c /ElmSharp | |
parent | 2e64ba1ee3b6ff540e792d6ac53c3fef7e35a46c (diff) | |
download | elm-sharp-6315926cf3b3200b4a9c68e0d85cc8c856d5a955.tar.gz elm-sharp-6315926cf3b3200b4a9c68e0d85cc8c856d5a955.tar.bz2 elm-sharp-6315926cf3b3200b4a9c68e0d85cc8c856d5a955.zip |
[AccessibleObject][AccessibleRelation]Add documents for accessibility classes.
Change-Id: Ia7ab23b53c2232274d4ebdd5b04f71c29c248843
Signed-off-by: Qian Sui <qian.sui@samsung.com>
Diffstat (limited to 'ElmSharp')
-rwxr-xr-x[-rw-r--r--] | ElmSharp/ElmSharp/AccessRole.cs | 312 | ||||
-rwxr-xr-x[-rw-r--r--] | ElmSharp/ElmSharp/AccessibleObject.cs | 67 | ||||
-rwxr-xr-x[-rw-r--r--] | ElmSharp/ElmSharp/AccessibleRelation.cs | 183 | ||||
-rwxr-xr-x[-rw-r--r--] | ElmSharp/ElmSharp/AccessibleUtil.cs | 29 | ||||
-rwxr-xr-x[-rw-r--r--] | ElmSharp/ElmSharp/IAccessibleObject.cs | 3 | ||||
-rwxr-xr-x[-rw-r--r--] | ElmSharp/ElmSharp/ReadingInfoType.cs | 18 |
6 files changed, 606 insertions, 6 deletions
diff --git a/ElmSharp/ElmSharp/AccessRole.cs b/ElmSharp/ElmSharp/AccessRole.cs index 3ff8e35..b49b2a2 100644..100755 --- a/ElmSharp/ElmSharp/AccessRole.cs +++ b/ElmSharp/ElmSharp/AccessRole.cs @@ -17,110 +17,422 @@ namespace ElmSharp.Accessible { + /// <summary> + /// Enumeration for AccessRole. + /// </summary> public enum AccessRole { + /// <summary> + /// Invalid + /// </summary> Invalid, + /// <summary> + /// AcceleratorLabel role + /// </summary> AcceleratorLabel, + /// <summary> + /// Alert role + /// </summary> Alert, + /// <summary> + /// Animation role + /// </summary> Animation, + /// <summary> + /// Arrow role + /// </summary> Arrow, + /// <summary> + /// Calendar role + /// </summary> Calendar, + /// <summary> + /// Canvas role + /// </summary> Canvas, + /// <summary> + /// CheckBox role + /// </summary> CheckBox, + /// <summary> + /// CheckMenuItem role + /// </summary> CheckMenuItem, + /// <summary> + /// ColorChooser role + /// </summary> ColorChooser, + /// <summary> + /// ColumnHeader role + /// </summary> ColumnHeader, + /// <summary> + /// ComboBox role + /// </summary> ComboBox, + /// <summary> + /// DateEditor role + /// </summary> DateEditor, + /// <summary> + /// DesktopIcon role + /// </summary> DesktopIcon, + /// <summary> + /// DesktopFrame role + /// </summary> DesktopFrame, + /// <summary> + /// Dial role + /// </summary> Dial, + /// <summary> + /// Dialog role + /// </summary> Dialog, + /// <summary> + /// DirectoryPane role + /// </summary> DirectoryPane, + /// <summary> + /// DrawingArea role + /// </summary> DrawingArea, + /// <summary> + /// FileChooser role + /// </summary> FileChooser, + /// <summary> + /// Filler role + /// </summary> Filler, + /// <summary> + /// FocusTraversable role + /// </summary> FocusTraversable, + /// <summary> + /// FontChooser role + /// </summary> FontChooser, + /// <summary> + /// Frame role + /// </summary> Frame, + /// <summary> + /// GlassPane role + /// </summary> GlassPane, + /// <summary> + /// HtmlContainer role + /// </summary> HtmlContainer, + /// <summary> + /// Icon role + /// </summary> Icon, + /// <summary> + /// Image role + /// </summary> Image, + /// <summary> + /// InternalFrame role + /// </summary> InternalFrame, + /// <summary> + /// Label role + /// </summary> Label, + /// <summary> + /// LayeredPane role + /// </summary> LayeredPane, + /// <summary> + /// List role + /// </summary> List, + /// <summary> + /// ListItem role + /// </summary> ListItem, + /// <summary> + /// Menu role + /// </summary> Menu, + /// <summary> + /// MenuBar role + /// </summary> MenuBar, + /// <summary> + /// MenuItem role + /// </summary> MenuItem, + /// <summary> + /// OptionPane role + /// </summary> OptionPane, + /// <summary> + /// PageTab role + /// </summary> PageTab, + /// <summary> + /// PageTabList role + /// </summary> PageTabList, + /// <summary> + /// Panel role + /// </summary> Panel, + /// <summary> + /// PasswordText role + /// </summary> PasswordText, + /// <summary> + /// PopupMenu role + /// </summary> PopupMenu, + /// <summary> + /// ProgressBar role + /// </summary> ProgressBar, + /// <summary> + /// PushButton role + /// </summary> PushButton, + /// <summary> + /// RadioButton role + /// </summary> RadioButton, + /// <summary> + /// RadioMenuItem role + /// </summary> RadioMenuItem, + /// <summary> + /// RootPane role + /// </summary> RootPane, + /// <summary> + /// RowHeader role + /// </summary> RowHeader, + /// <summary> + /// ScrollBar role + /// </summary> ScrollBar, + /// <summary> + /// ScrollPane role + /// </summary> ScrollPane, + /// <summary> + /// Separator role + /// </summary> Separator, + /// <summary> + /// Slider role + /// </summary> Slider, + /// <summary> + /// SpinButton role + /// </summary> SpinButton, + /// <summary> + /// SplitPane role + /// </summary> SplitPane, + /// <summary> + /// StatusBar role + /// </summary> StatusBar, + /// <summary> + /// Table role + /// </summary> Table, + /// <summary> + /// TableCell role + /// </summary> TableCell, + /// <summary> + /// TableColumnHeader role + /// </summary> TableColumnHeader, + /// <summary> + /// TableRowHeader role + /// </summary> TableRowHeader, + /// <summary> + /// TearoffMenuItem role + /// </summary> TearoffMenuItem, + /// <summary> + /// Terminal role + /// </summary> Terminal, + /// <summary> + /// Text role + /// </summary> Text, + /// <summary> + /// ToggleButton role + /// </summary> ToggleButton, + /// <summary> + /// ToolBar role + /// </summary> ToolBar, + /// <summary> + /// ToolTip role + /// </summary> ToolTip, + /// <summary> + /// Tree role + /// </summary> Tree, + /// <summary> + /// TreeTable role + /// </summary> TreeTable, + /// <summary> + /// Unknown + /// </summary> Unknown, + /// <summary> + /// Viewport role + /// </summary> Viewport, + /// <summary> + /// Window role + /// </summary> Window, + /// <summary> + /// Extended role + /// </summary> Extended, + /// <summary> + /// Header role + /// </summary> Header, + /// <summary> + /// Footer role + /// </summary> Footer, + /// <summary> + /// Paragraph + /// </summary> Paragraph, + /// <summary> + /// Ruler role + /// </summary> Ruler, + /// <summary> + /// Application role + /// </summary> Application, + /// <summary> + /// Autocomplete role + /// </summary> Autocomplete, + /// <summary> + /// Editbar role + /// </summary> Editbar, + /// <summary> + /// Embedded role + /// </summary> Embedded, + /// <summary> + /// Entry role + /// </summary> Entry, + /// <summary> + /// Chart role + /// </summary> Chart, + /// <summary> + /// Caption role + /// </summary> Caption, + /// <summary> + /// DocumentFrame role + /// </summary> DocumentFrame, + /// <summary> + /// Heading role + /// </summary> Heading, + /// <summary> + /// Page role + /// </summary> Page, + /// <summary> + /// Section role + /// </summary> Section, + /// <summary> + /// RedundantObject role + /// </summary> RedundantObject, + /// <summary> + /// Form role + /// </summary> Form, + /// <summary> + /// Link role + /// </summary> Link, + /// <summary> + /// InputMethodWindow role + /// </summary> InputMethodWindow, + /// <summary> + /// TableRow role + /// </summary> TableRow, + /// <summary> + /// TreeItem role + /// </summary> TreeItem, + /// <summary> + /// DocumentSpreadsheet role + /// </summary> DocumentSpreadsheet, + /// <summary> + /// DocumentPresentation role + /// </summary> DocumentPresentation, + /// <summary> + /// DocumentText role + /// </summary> DocumentText, + /// <summary> + /// DocumentWeb role + /// </summary> DocumentWeb, + /// <summary> + /// DocumentEmail role + /// </summary> DocumentEmail, + /// <summary> + /// Comment role + /// </summary> Comment, + /// <summary> + /// ListBox role + /// </summary> ListBox, + /// <summary> + /// Grouping role + /// </summary> Grouping, + /// <summary> + /// ImageMap role + /// </summary> ImageMap, + /// <summary> + /// Notification role + /// </summary> Notification, + /// <summary> + /// InfoBar role + /// </summary> InfoBar } } diff --git a/ElmSharp/ElmSharp/AccessibleObject.cs b/ElmSharp/ElmSharp/AccessibleObject.cs index 02ede3b..092abf6 100644..100755 --- a/ElmSharp/ElmSharp/AccessibleObject.cs +++ b/ElmSharp/ElmSharp/AccessibleObject.cs @@ -18,9 +18,18 @@ using System; namespace ElmSharp.Accessible { - + /// <summary> + /// The delegate to define how to provide informations for <see cref="IAccessibleObject.Name"/> or <see cref="IAccessibleObject.Description"/>. + /// </summary> + /// <param name="obj">The sender obj.</param> + /// <returns>Return information for Name or Description.</returns> public delegate string AccessibleInfoProvider (AccessibleObject obj); + /// <summary> + /// It's a base abstract class for <see cref="Widget"/>. + /// It provides available definitions for the screen reader, such as <see cref="IAccessibleObject.Name"/>, <see cref="IAccessibleObject.Description"/>, <see cref="IAccessibleObject.ReadingInfoType"/>, etc. + /// There's many the relationship between two accessible objects, like <see cref="ChildOf"/>, <see cref="ParentOf"/>, <see cref="FlowsTo"/>, <see cref="FlowsFrom"/>, etc. + /// </summary> public abstract class AccessibleObject : EvasObject, IAccessibleObject { @@ -30,6 +39,9 @@ namespace ElmSharp.Accessible Interop.Elementary.Elm_Atspi_Reading_Info_Cb _nameProviderInternal; Interop.Elementary.Elm_Atspi_Reading_Info_Cb _descriptionProviderInternal; + /// <summary> + /// Gets or sets the reading information types of an accessible object. + /// </summary> ReadingInfoType IAccessibleObject.ReadingInfoType { get @@ -42,6 +54,10 @@ namespace ElmSharp.Accessible (Interop.Elementary.Elm_Accessible_Reading_Info_Type)value); } } + + /// <summary> + /// Gets or sets the role of the object in accessibility domain. + /// </summary> AccessRole IAccessibleObject.Role { get @@ -54,6 +70,10 @@ namespace ElmSharp.Accessible (Interop.Elementary.Elm_Atspi_Role)value); } } + + /// <summary> + /// Gets or sets highlightable of given widget. + /// </summary> bool IAccessibleObject.CanHighlight { get @@ -65,6 +85,13 @@ namespace ElmSharp.Accessible Interop.Elementary.elm_atspi_accessible_can_highlight_set(Handle, value); } } + + /// <summary> + /// Gets or sets the translation domain of "name" and "description" properties. + /// Translation domain should be set if application wants to support i18n for accessibily "name" and "description" properties. + /// When translation domain is set values of "name" and "description" properties will be translated with dgettext function using current translation domain as "domainname" parameter. + /// It is application developer responsibility to ensure that translation files are loaded and binded to translation domain when accessibility is enabled. + /// </summary> string IAccessibleObject.TranslationDomain { get @@ -76,6 +103,10 @@ namespace ElmSharp.Accessible Interop.Elementary.elm_atspi_accessible_translation_domain_set(Handle, value); } } + + /// <summary> + /// Gets or sets an accessible name of the object. + /// </summary> string IAccessibleObject.Name { get @@ -87,6 +118,10 @@ namespace ElmSharp.Accessible Interop.Elementary.elm_atspi_accessible_name_set(Handle, value); } } + + /// <summary> + /// Gets or sets contextual information about object. + /// </summary> string IAccessibleObject.Description { get @@ -99,6 +134,9 @@ namespace ElmSharp.Accessible } } + /// <summary> + /// Gets or sets the delegate for <see cref="IAccessibleObject.Name"/>. + /// </summary> AccessibleInfoProvider IAccessibleObject.NameProvider { get @@ -124,6 +162,10 @@ namespace ElmSharp.Accessible } } } + + /// <summary> + /// Gets or sets the delegate for <see cref = "IAccessibleObject.Description" />. + /// </summary> AccessibleInfoProvider IAccessibleObject.DescriptionProvider { get @@ -150,31 +192,54 @@ namespace ElmSharp.Accessible } } + /// <summary> + /// Creates and initializes a new instance of the AccessibleObject class with parent EvasObject class parameter. + /// </summary> + /// <param name="parent">Parent EvasObject class </param> public AccessibleObject(EvasObject parent) : base(parent) { } + /// <summary> + /// Creates and initializes a new instance of the AccessibleObject class. + /// </summary> public AccessibleObject() : base() { } + /// <summary> + /// Defines the relationship between two accessible objects. + /// Relationships can be queried by Assistive Technology clients to provide customized feedback, improving overall user experience. + /// AppendRelation API is asymmetric, which means that appending, for example, relation <see cref="FlowsTo"/> from object A to B, do not append relation <see cref="FlowsFrom"/> from object B to object A. + /// </summary> + /// <param name="relation">The relationship between source object and target object of a given type.</param> void IAccessibleObject.AppendRelation(IAccessibleRelation relation) { if (relation.Target == null) throw new ArgumentException("Target of Accessibility relation can not be null"); Interop.Elementary.elm_atspi_accessible_relationship_append(Handle, relation.Type, relation.Target.Handle); } + /// <summary> + /// Removes the relationship between two accessible objects. + /// </summary> + /// <param name="relation">The relationship between source object and target object of a given type.</param> void IAccessibleObject.RemoveRelation(IAccessibleRelation relation) { if (relation.Target == null) throw new ArgumentException("Target of Accessibility relation can not be null"); Interop.Elementary.elm_atspi_accessible_relationship_remove(Handle, relation.Type, relation.Target.Handle); } + /// <summary> + /// Highlights accessible widget. + /// </summary> public void Highlight() { Interop.Elementary.elm_atspi_component_highlight_grab(Handle); } + /// <summary> + /// Clears highlight of accessible widget. + /// </summary> public void Unhighlight() { Interop.Elementary.elm_atspi_component_highlight_clear(Handle); diff --git a/ElmSharp/ElmSharp/AccessibleRelation.cs b/ElmSharp/ElmSharp/AccessibleRelation.cs index b909778..4d24e98 100644..100755 --- a/ElmSharp/ElmSharp/AccessibleRelation.cs +++ b/ElmSharp/ElmSharp/AccessibleRelation.cs @@ -17,6 +17,9 @@ namespace ElmSharp.Accessible { + /// <summary> + /// IAccessibleRelation is a interface which defines the relationship between two accessible objects. + /// </summary> public interface IAccessibleRelation { @@ -24,162 +27,342 @@ namespace ElmSharp.Accessible int Type { get; } } + /// <summary> + /// To define label info for accessible object. + /// </summary> public class LabelledBy : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is LabelledBy. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the LabelledBy type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_LABELLED_BY; } } } + /// <summary> + /// To define label info for accessible object. + /// </summary> public class LabelFor : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is LabelFor. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the LabelFor type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_LABEL_FOR; } } } + /// <summary> + /// To define control relationship for accessible object. + /// </summary> public class ControllerFor : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is ControllerFor. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the ControllerFor type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_CONTROLLER_FOR; } } } + /// <summary> + /// To define control relationship for accessible object. + /// </summary> public class ControlledBy : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is ControlledBy. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the ControlledBy type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_CONTROLLED_BY; } } } + /// <summary> + /// To define member relationship for accessible object. + /// </summary> public class MemberOf : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is MemberOf. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the MemberOf type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_MEMBER_OF; } } } + /// <summary> + /// To define tooltip for accessible object. + /// </summary> public class TooltipFor : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is TooltipFor. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the TooltipFor type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_TOOLTIP_FOR; } } } + /// <summary> + /// To define child for accessible object. + /// </summary> public class ChildOf : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is ChildOf. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the ChildOf type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_NODE_CHILD_OF; } } } + /// <summary> + /// To define parent for accessible object. + /// </summary> public class ParentOf : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is ParentOf. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the ParentOf type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_NODE_PARENT_OF; } } } + /// <summary> + /// To define extend for accessible object. + /// </summary> public class Extended : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is Extended. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the Extended type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_EXTENDED; } } } + /// <summary> + /// To define the custom reading order. + /// </summary> public class FlowsTo : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is FlowsTo. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the FlowsTo type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_FLOWS_TO; } } } + /// <summary> + /// To define the custom reading order. + /// </summary> public class FlowsFrom : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is FlowsFrom. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the FlowsFrom type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_FLOWS_FROM; } } } + /// <summary> + /// To define subwindow for accessible object. + /// </summary> public class SubwindowOf : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is SubwindowOf. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the SubwindowOf type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_SUBWINDOW_OF; } } } + /// <summary> + /// To define embed for accessible object. + /// </summary> public class Embeds : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is Embeds. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the Embeds type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_EMBEDS; } } } + /// <summary> + /// To define embed for accessible object. + /// </summary> public class EmbeddedBy : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is EmbeddedBy. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the EmbeddedBy type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_EMBEDDED_BY; } } } + /// <summary> + /// To define popup for accessible object. + /// </summary> public class PopupFor : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is PopupFor. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the PopupFor type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_POPUP_FOR; } } } + /// <summary> + /// To define parent window for accessible object. + /// </summary> public class ParentWindowOf : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is ParentWindowOf. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the ParentWindowOf type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_PARENT_WINDOW_OF; } } } + /// <summary> + /// To define description for accessible object. + /// </summary> public class DescriptionFor : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is DescriptionFor. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the DescriptionFor type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_DESCRIPTION_FOR; } } } + /// <summary> + /// To define description for accessible object. + /// </summary> public class DescribedBy : IAccessibleRelation { + /// <summary> + /// Gets or sets the target object which is DescribedBy. + /// </summary> public AccessibleObject Target { get; set; } + + /// <summary> + /// Gets the DescribedBy type. + /// </summary> public int Type { get { return (int)Interop.Elementary.Elm_Atspi_Relation_Type.ELM_ATSPI_RELATION_DESCRIBED_BY; } diff --git a/ElmSharp/ElmSharp/AccessibleUtil.cs b/ElmSharp/ElmSharp/AccessibleUtil.cs index 174a81b..720fca4 100644..100755 --- a/ElmSharp/ElmSharp/AccessibleUtil.cs +++ b/ElmSharp/ElmSharp/AccessibleUtil.cs @@ -20,14 +20,32 @@ using System.Threading.Tasks; namespace ElmSharp.Accessible { + /// <summary> + /// Enumeration for ReadingStatus. + /// </summary> public enum ReadingStatus { + /// <summary> + /// Unknown status + /// </summary> Unknown, + /// <summary> + /// Cancelled status + /// </summary> Cancelled, + /// <summary> + /// Stopped status + /// </summary> Stoppped, + /// <summary> + /// Skipped status + /// </summary> Skipped } + /// <summary> + /// AccessibleUtil provides a method to set the reading information. + /// </summary> public static class AccessibleUtil { @@ -55,11 +73,12 @@ namespace ElmSharp.Accessible gch.Free(); } - /* - * ReadingCancelled is never appear if discardable is true. - * ReadingStoppped is appear on end of normal operation. - * I don't know when the ReadingSkipped is appeared. - */ + /// <summary> + /// Reads given text by screen reader. + /// </summary> + /// <param name="text">The reading text.</param> + /// <param name="discardable">If true, reading can be discarded by subsequent reading requests, if false the reading must finish before next reading request can be started.</param> + /// <returns>Return a task with reading status.</returns> public static Task<ReadingStatus> Say(string text, bool discardable) { var tcs = new TaskCompletionSource<ReadingStatus>(); diff --git a/ElmSharp/ElmSharp/IAccessibleObject.cs b/ElmSharp/ElmSharp/IAccessibleObject.cs index bf633b1..f1488ff 100644..100755 --- a/ElmSharp/ElmSharp/IAccessibleObject.cs +++ b/ElmSharp/ElmSharp/IAccessibleObject.cs @@ -16,6 +16,9 @@ namespace ElmSharp.Accessible { + /// <summary> + /// IAccessibleObject is a interface which defines properties and methods of accessible object. + /// </summary> public interface IAccessibleObject { ReadingInfoType ReadingInfoType { get; set; } diff --git a/ElmSharp/ElmSharp/ReadingInfoType.cs b/ElmSharp/ElmSharp/ReadingInfoType.cs index 846a063..35df932 100644..100755 --- a/ElmSharp/ElmSharp/ReadingInfoType.cs +++ b/ElmSharp/ElmSharp/ReadingInfoType.cs @@ -18,13 +18,31 @@ using System; namespace ElmSharp.Accessible { + /// <summary> + /// Enumeration for ReadingInfoType. + /// </summary> [Flags] public enum ReadingInfoType { + /// <summary> + /// None + /// </summary> None = 0, + /// <summary> + /// Name for reading info type + /// </summary> Name = 0x1, + /// <summary> + /// Role for reading info type + /// </summary> Role = 0x2, + /// <summary> + /// Description for reading info type + /// </summary> Description = 0x4, + /// <summary> + /// State for reading info type + /// </summary> State = 0x8 } } |