Merge "[Camera] Fix XML documentation warnings"
[platform/core/csapi/tizenfx.git] / src / ElmSharp / ElmSharp / IAccessibleObject.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 namespace ElmSharp.Accessible
18 {
19     /// <summary>
20     /// IAccessibleObject is a interface which defines properties and methods of accessible object.
21     /// </summary>
22     public interface IAccessibleObject
23     {
24         /// <summary>
25         /// Gets or sets the reading information types of an accessible object.
26         /// </summary>
27         ReadingInfoType ReadingInfoType { get; set; }
28
29         /// <summary>
30         /// Gets or sets the role of the object in accessibility domain.
31         /// </summary>
32         AccessRole Role { get; set; }
33
34         /// <summary>
35         /// Gets or sets highlightable of given widget.
36         /// </summary>
37         bool CanHighlight { get; set; }
38
39         /// <summary>
40         /// Gets or sets the translation domain of "name" and "description" properties.
41         /// Translation domain should be set if application wants to support i18n for accessibily "name" and "description" properties.
42         /// When translation domain is set values of "name" and "description" properties will be translated with dgettext function using current translation domain as "domainname" parameter.
43         /// It is application developer responsibility to ensure that translation files are loaded and binded to translation domain when accessibility is enabled.
44         /// </summary>
45         string TranslationDomain { get; set; }
46
47         /// <summary>
48         /// Gets or sets an accessible name of the object.
49         /// </summary>
50         string Name { get; set; }
51
52         /// <summary>
53         /// Gets or sets contextual information about object.
54         /// </summary>
55         string Description { get; set; }
56
57         /// <summary>
58         /// Gets or sets the delegate for <see cref="IAccessibleObject.Name"/>.
59         /// </summary>
60         AccessibleInfoProvider NameProvider { get; set; }
61
62         /// <summary>
63         /// Gets or sets the delegate for <see cref = "IAccessibleObject.Description" />.
64         /// </summary>
65         AccessibleInfoProvider DescriptionProvider { get; set; }
66
67         /// <summary>
68         /// Defines the relationship between two accessible objects.
69         /// Relationships can be queried by Assistive Technology clients to provide customized feedback, improving overall user experience.
70         /// 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.
71         /// </summary>
72         /// <param name="relation">The relationship between source object and target object of a given type.</param>
73         void AppendRelation(IAccessibleRelation relation);
74
75         /// <summary>
76         /// Removes the relationship between two accessible objects.
77         /// </summary>
78         /// <param name="relation">The relationship between source object and target object of a given type.</param>
79         void RemoveRelation(IAccessibleRelation relation);
80
81         /// <summary>
82         /// Highlights accessible widget.
83         /// </summary>
84         void Highlight();
85
86         /// <summary>
87         /// Clears highlight of accessible widget.
88         /// </summary>
89         void Unhighlight();
90     }
91 }