1# ArkUI Subsystem Changelog
2
3## cl.arkui.1 Changes of Default Focus Behavior
4
5Changed the default focus used when **defaultFocus** is not set.
6
7Versions earlier than API version 11: The default focus is given to the first focusable non-container component on the current page.
8
9API version 11 and later versions: The default focus is given to the root container of the current page.
10
11**Change Impact**
12
13If the **defaultFocus** attribute is not set, the first focusable non-container component on a page will not obtain focus immediately when the page opens for the first time. Instead, it is the root container of the page that obtains the focus.
14
15Example:
161. Here is a page whose first focusable non-container component is a text box, and no component on the page is bound to the **defaultFocus** attribute.
17
18   Versions earlier than API version 11: When the page opens, the text box obtains focus and starts the input method.
19
20   API version 11 and later versions: When the page opens, the text box does not obtain focus and therefore the input method is not started. The user needs to press the Tab key to focus the text box.
21
222. Assume that the **onKeyEvent** event is bound to the first focusable non-container component on the page to listen for the key events on the component.
23
24   Versions earlier than API version 11: When the page opens, the component is focused by default; the **onKeyEvent** callback can respond to key events on the component without any other operation required.
25
26   API version 11 and later versions: When the page opens, the component is not focused; the **onKeyEvent** callback can respond to key events on the component only after the user presses the Tab key to enable the component to obtain focus.
27
28
29
30**Adaptation Guide**
31
32To achieve the before-change results, bind the **defaultFocus(true)** attribute to the target component to enable the target component to become the default focus on the page. In this way, when the page opens for the first time, the focus is automatically given to the first component bound to the **defaultFocus(true)** attribute.
33
34
35## cl.arkui.2 Changes of the Soft Keyboard Interaction Behavior in Text Box Components
36
37When the text box is focused, the input method is started. The soft keyboard of the input method can be closed by touching either the inverted triangle button or the EnterKey button on the keyboard.
38
39Versions earlier than API version 11: When either of the aforementioned button is touched, the soft keyboard is closed, and the text box component remains focused.
40
41API version 11 and later versions: When either of the aforementioned button is touched, the soft keyboard is closed, and the text box component loses focus.
42
43The following text box components are affected: **\<TextInput>**, **\<TextArea>**, **\<Search>**, and **\<RichEditor>**.
44
45**Change Impact**
46
47Logical behavior that affects the focus:
48
49Versions earlier than API version 11: After a button is touched, the text box is still in the focused state. In this case, the **onKeyEvent** event on the text box can still be properly responded to. The application switches from the background to the foreground and starts the input method again. The user can press the Tab key to move the focus to the next component.
50
51API version 11 and later versions: After a button is clicked, the text box loses focus immediately. In this case, the **onKeyEvent** event on the input box cannot respond to. The input method is not started again when the application is in the foreground. Pressing the Tab key enables the text box to obtain focus again, rather than moves the focus to the next component.
52
53**Adaptation Guide**
54
55No adaptation is required. However, you need to check whether the changed behavior affects the overall application logic.
56
57## cl.arkui.3 Change of the \<Checkbox> Component's Default Shape
58
59**Access Level**
60
61Public
62
63**Reason for Change**
64
65The change is made to enhance the visual and interaction experience.
66
67**Change Impact**
68
69This change is a compatible change.
70
71**API Level**
72
7311
74
75**Change Since**
76
77OpenHarmony SDK 4.1.3.2
78
79**Key API/Component Changes**
80
81\<Checkbox>
82
83Changed the **\<Checkbox>** component's default shape used when the **shape** attribute is not set.
84
85**Change Impact**
86
87Default shape policy:
88
89API version 11 and later versions: The **\<Checkbox>** component's default shape is circle.
90
91  ![](figures/checkbox.png)
92
93Versions earlier than API version 11: The **\<Checkbox>** component's default shape is rounded square.
94
95  ![](figures/checkbox_old.png)
96
97**Adaptation Guide**
98
99If you would like the **\<Checkbox>** component in the rounded square shape, bind the **shape(CheckBoxShape.ROUNDED_SQUARE)** attribute to the component.
100
101
102## cl.arkui.4 Resource Verification Level Change of the rawfile File
103
104**Access Level**
105
106Resources referenced in **$rawfile()**
107
108**Change Impact**
109
110When **$rawfile()** references a resource that does not exist, an ERROR message, instead of a WARN message in previous versions, is reported.
111
112**Change Since**
113
114OpenHarmony SDK 4.1.3.2
115
116**Example**
117
118```
119@Entry
120@Component
121struct Index {
122  build() {
123    Button(){
124      // ERROR: No such 'app_icon.ong' resource in current module.
125      Image($rawfile('app_icon.png'))
126    }
127  }
128}
129```
130
131**Key API/Component Changes**
132
133N/A
134
135**Adaptation Guide**
136
137N/A
138