1e41f4b71Sopenharmony_ci# ArkUI Subsystem Changelog
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ci## cl.arkui.1 Changes of Default Focus Behavior
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciChanged the default focus used when **defaultFocus** is not set.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ciVersions earlier than API version 11: The default focus is given to the first focusable non-container component on the current page.
8e41f4b71Sopenharmony_ci
9e41f4b71Sopenharmony_ciAPI version 11 and later versions: The default focus is given to the root container of the current page.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci**Change Impact**
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ciIf 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.
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ciExample:
16e41f4b71Sopenharmony_ci1. 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.
17e41f4b71Sopenharmony_ci
18e41f4b71Sopenharmony_ci   Versions earlier than API version 11: When the page opens, the text box obtains focus and starts the input method.
19e41f4b71Sopenharmony_ci
20e41f4b71Sopenharmony_ci   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.
21e41f4b71Sopenharmony_ci
22e41f4b71Sopenharmony_ci2. 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.
23e41f4b71Sopenharmony_ci   
24e41f4b71Sopenharmony_ci   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.
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci   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.
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci**Adaptation Guide**
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ciTo 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.
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci## cl.arkui.2 Changes of the Soft Keyboard Interaction Behavior in Text Box Components
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ciWhen 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.
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ciVersions 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.
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ciAPI 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.
42e41f4b71Sopenharmony_ci
43e41f4b71Sopenharmony_ciThe following text box components are affected: **\<TextInput>**, **\<TextArea>**, **\<Search>**, and **\<RichEditor>**.
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci**Change Impact**
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ciLogical behavior that affects the focus:
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ciVersions 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.
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ciAPI 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.
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci**Adaptation Guide**
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ciNo adaptation is required. However, you need to check whether the changed behavior affects the overall application logic.
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci## cl.arkui.3 Change of the \<Checkbox> Component's Default Shape
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci**Access Level**
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_ciPublic
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ci**Reason for Change**
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ciThe change is made to enhance the visual and interaction experience.
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci**Change Impact**
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ciThis change is a compatible change.
70e41f4b71Sopenharmony_ci
71e41f4b71Sopenharmony_ci**API Level**
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci11
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci**Change Since**
76e41f4b71Sopenharmony_ci
77e41f4b71Sopenharmony_ciOpenHarmony SDK 4.1.3.2
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci**Key API/Component Changes**
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ci\<Checkbox>
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ciChanged the **\<Checkbox>** component's default shape used when the **shape** attribute is not set.
84e41f4b71Sopenharmony_ci
85e41f4b71Sopenharmony_ci**Change Impact**
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ciDefault shape policy:
88e41f4b71Sopenharmony_ci
89e41f4b71Sopenharmony_ciAPI version 11 and later versions: The **\<Checkbox>** component's default shape is circle.
90e41f4b71Sopenharmony_ci
91e41f4b71Sopenharmony_ci  ![](figures/checkbox.png)
92e41f4b71Sopenharmony_ci
93e41f4b71Sopenharmony_ciVersions earlier than API version 11: The **\<Checkbox>** component's default shape is rounded square.
94e41f4b71Sopenharmony_ci
95e41f4b71Sopenharmony_ci  ![](figures/checkbox_old.png)
96e41f4b71Sopenharmony_ci
97e41f4b71Sopenharmony_ci**Adaptation Guide**
98e41f4b71Sopenharmony_ci
99e41f4b71Sopenharmony_ciIf you would like the **\<Checkbox>** component in the rounded square shape, bind the **shape(CheckBoxShape.ROUNDED_SQUARE)** attribute to the component.
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci
102e41f4b71Sopenharmony_ci## cl.arkui.4 Resource Verification Level Change of the rawfile File
103e41f4b71Sopenharmony_ci
104e41f4b71Sopenharmony_ci**Access Level**
105e41f4b71Sopenharmony_ci
106e41f4b71Sopenharmony_ciResources referenced in **$rawfile()**
107e41f4b71Sopenharmony_ci
108e41f4b71Sopenharmony_ci**Change Impact**
109e41f4b71Sopenharmony_ci
110e41f4b71Sopenharmony_ciWhen **$rawfile()** references a resource that does not exist, an ERROR message, instead of a WARN message in previous versions, is reported.
111e41f4b71Sopenharmony_ci
112e41f4b71Sopenharmony_ci**Change Since**
113e41f4b71Sopenharmony_ci
114e41f4b71Sopenharmony_ciOpenHarmony SDK 4.1.3.2
115e41f4b71Sopenharmony_ci
116e41f4b71Sopenharmony_ci**Example**
117e41f4b71Sopenharmony_ci
118e41f4b71Sopenharmony_ci```
119e41f4b71Sopenharmony_ci@Entry
120e41f4b71Sopenharmony_ci@Component
121e41f4b71Sopenharmony_cistruct Index {
122e41f4b71Sopenharmony_ci  build() {
123e41f4b71Sopenharmony_ci    Button(){
124e41f4b71Sopenharmony_ci      // ERROR: No such 'app_icon.ong' resource in current module.
125e41f4b71Sopenharmony_ci      Image($rawfile('app_icon.png'))
126e41f4b71Sopenharmony_ci    }
127e41f4b71Sopenharmony_ci  }
128e41f4b71Sopenharmony_ci}
129e41f4b71Sopenharmony_ci```
130e41f4b71Sopenharmony_ci
131e41f4b71Sopenharmony_ci**Key API/Component Changes**
132e41f4b71Sopenharmony_ci
133e41f4b71Sopenharmony_ciN/A
134e41f4b71Sopenharmony_ci
135e41f4b71Sopenharmony_ci**Adaptation Guide**
136e41f4b71Sopenharmony_ci
137e41f4b71Sopenharmony_ciN/A
138