2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 namespace ElmSharp.Accessible
20 /// IAccessibleObject is an interface, which defines the properties and methods of an accessible object.
22 /// <since_tizen> preview </since_tizen>
23 public interface IAccessibleObject
26 /// Gets or sets the reading information types of an accessible object.
28 /// <since_tizen> preview </since_tizen>
29 ReadingInfoType ReadingInfoType { get; set; }
32 /// Gets or sets the role of the object in an accessibility domain.
34 /// <since_tizen> preview </since_tizen>
35 AccessRole Role { get; set; }
38 /// Gets or sets the highlightable of the given widget.
40 /// <since_tizen> preview </since_tizen>
41 bool CanHighlight { get; set; }
44 /// Gets or sets the translation domain of the "name" and "description" properties.
45 /// Translation domain should be set if the application wants to support i18n for accessing the "name" and "description" properties.
46 /// When the translation domain is set, values of the "name" and "description" properties will be translated with dgettext function using the current translation domain as "domainname" parameter.
47 /// It is the application developer's responsibility to ensure that translation files are loaded and binded to the translation domain when accessibility is enabled.
49 /// <since_tizen> preview </since_tizen>
50 string TranslationDomain { get; set; }
53 /// Gets or sets an accessible name of the object.
55 /// <since_tizen> preview </since_tizen>
56 string Name { get; set; }
59 /// Gets or sets contextual information about the object.
61 /// <since_tizen> preview </since_tizen>
62 string Description { get; set; }
65 /// Gets or sets the delegate for <see cref="IAccessibleObject.Name"/>.
67 /// <since_tizen> preview </since_tizen>
68 AccessibleInfoProvider NameProvider { get; set; }
71 /// Gets or sets the delegate for <see cref="IAccessibleObject.Description"/>.
73 /// <since_tizen> preview </since_tizen>
74 AccessibleInfoProvider DescriptionProvider { get; set; }
77 /// Defines the relationship between two accessible objects.
78 /// Relationships can be queried by Assistive Technology clients to provide customized feedback, improving overall user experience.
79 /// 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.
81 /// <param name="relation">The relationship between the source object and target object of a given type.</param>
82 /// <since_tizen> preview </since_tizen>
83 void AppendRelation(IAccessibleRelation relation);
86 /// Removes the relationship between two accessible objects.
88 /// <param name="relation">The relationship between the source object and target object of a given type.</param>
89 /// <since_tizen> preview </since_tizen>
90 void RemoveRelation(IAccessibleRelation relation);
93 /// Highlights the accessible widget.
95 /// <since_tizen> preview </since_tizen>
99 /// Clears the highlight of the accessible widget.
101 /// <since_tizen> preview </since_tizen>