webOS TV provides a checklist for self evaluation of your app for content, UX, and privacy and credential information usage. Before submitting your app, make sure your app follows all the guidelines and passes the checklist.
The first two section of this page summarizes the app self checklist that you are required to fill and upload when submitting the app. If you do not upload this checklist or the information in the file is not sufficient, the app may be rejected without a QA process. If your app fails in any item, debug the issue before submission. For the full list, download App Self Checklist.
Note
Depending on the features of your app, you can mark some items as not applicable (N/A). However, before doing it, make sure that it is actually N/A, because if not, the app will be rejected for not providing accurate information.
Content self-check guidelines
Before approving an app for sale, we also examine whether the app content includes any sexual offensiveness, violence, discrimination or crime/drug abuse, and other inappropriateness. If your app does not abide by the set guidelines and includes any inappropriate items listed, the app will be rejected.
Below is the summary of content check points that guide you on what should not be included in your app. For the full details, refer to the downloaded app self checklist.
The app should not include descriptions of any sexually-offensive acts or unfair presentations of sexuality/genders.
The app should not include any realistic descriptions of violence, weapons, and animal cruelty or expressions that belittle human lives or promotes crimes and unethical actions.
The app should not include any expressions of violent towards or discriminative against specific regions, genders, generations, religions, and/or ethnic groups.
The app should not include any content that aims to commit a crime, aids someone to do, encourages young adults' smoking and drinking, or pertain to the use of illicit drugs.
The app should not include items considered to be gambling games, purchase or cashout of game money, transfer of game money among users, or acquiring of compensation.
The app should not include themes against any specific religious or national background.
UX self-check guidelines
The webOS TV provides mandatory and recommended guidelines for webOS TV UX, which you should know about when developing webOS TV apps. You must follow the mandatory guidelines to pass the app QA and launch your app to LG Content Store. Also, you should follow the recommended guidelines to avoid users’ confusion and maintain a unified look and feel.
Mandatory guidelines
All navigation keys must be operable on the app. Selectable UIs must be controlled by 4-way navigation keys (Up, Down, Left, Right), OK, and Back buttons. However, on screen display (OSD) buttons working with colored keys (red, green, yellow, blue) do not need to be controlled by 4-way navigation keys.
All screen cursors must be operable on the app. Selectable UIs must be controlled by screen cursors and OK button.
A click on the Back button on the entry page of the app must display the Home screen. Pressing the Back button on the Remote Control on the entry page must display the Home screen, rather than a previous page. For detailed information, see Back Button.
All of the objects in the app must provide an selection effect. All of the objects in your app MUST ALWAYS provide some sort of selection effect with NO EXCEPTION. Unlike touch-enabled devices, taking action on TV requires 2-step user interactions; the user needs to select a UI element on the screen using the pointer or the arrow keys depending on the remote control mode, then press the OK button. Therefore, for a better user experience, you must apply the selection effect (animation, highlight, color or size changes, etc.) to show what element is activated.
Recommended guidelines
The screen resolution of the app is supported by webOS TV. The screen resolutions of apps could be either 1280x720 or 1920x1080. However, we recommend using 1920x1080 for a screen resolution. If you do not define the screen resolution in the appinfo.json, 1920x1080 is used by default. Therefore, if you want to use 1280x720, you must modify the resolution value in the appinfo.json. For detailed information on screen resolution, see resolution
The button image meets the minimum size recommendation. We recommend using at least the following image size for clickable buttons.
75x75 pixels for 1920x1080 resolution
50x50 pixels for 1280x720 resolution
The text font meets the minimum font size recommendation. We recommend using at least the following font size for texts.
20 pixels for 1920x1080 resolution
14 pixels for 1280x720 resolution
UIs have states that are visually recognizable. Selectable objects such as a button, menu, and tab should have states that are recognized at a glance.
The app has a visual cue while the content is being loaded. We recommend that apps have a visual cue to indicate the progress of loading content. If an app shows a black screen without comment or cue while the content is being loaded, it will make users anxious about progress.
The wheel button action matches the recommended usage. When users scroll lists using the wheel button of Magic Remote, the lists should be moved in the same direction of the mouse scroll wheel.
If the app uses the LG Virtual Keyboard, its operation matches the recommended usage. LG Virtual Keyboard automatically comes from the bottom of the screen when users select input fields. For detailed information on LG Virtual Keyboard, see Virtual Keyboard.
If the app provides a playback control, the on-screen menu is supported. The playback control can be controlled by 4-way navigation keys and the screen cursor of the Remote Control as well as the on-screen menu. (Image update needed)However, if the media buttons such as Play, Stop, FF/REW are not provided by the Remote Control, the playback control must be controlled by the on-screen menu.
The Play button on the playback control has the pause feature as well as the play feature. Also, the Pause button on the playback control has the play feature as well as the pause feature. The Play button can have both play and pause features, and the Pause button can have both pause and play features. If two buttons respectively exist on the playback control, we recommend each button have one feature.
Privacy and credential information usage guidelines
For security, privacy and credential information should be stored in a safe storage or be encrypted. Therefore, you need to review the use of such information, listed in the following, in your app.
Kinds of privacy and credential information
The table below lists kinds of privacy and credential information that needs to be checked.
Category
Item
Rule
Rule description
String example
Password
Password
varname_passwd
Variable name includes passwd
myPasswd = "examplePasswd"
varname_pwd
Variable name includes pwd
myPwd = "examplePwd"
varname_password
Variable name includes password
myPassword = "examplePassword"
Encryption key
Encryption key
pem_private_key
PEM Private Key
-----BEGIN RSA PRIVATE KEY-----
Crendential
Crential
varname_credential
Variable name includes credential
userCredential = "exampleCredential"
Token
varname_token
Variable name includes token
userToken = "exampleToken"
File name
Filename
filename_key
Filename name includes keyword (passwd, password, credential, token)
password.txt
Self-checklist
Examine the use of privacy and credential information in your app with the following questions and take necessary measures.
Does the source code contain privacy and credential information? These are the mitigation measures you can consider.
Avoid inserting privacy or credential information directly into the source code.
Depending on the importance of information, encrypt and decrypt some information saved in the settings file.
Did you use privacy and credential information as the file name? This is the mitigation measure you can consider.
Avoid exposing privacy and credential information through file names.