Login

Sign Up

  • Account Information
  • Company Information
  • Contact














* Whale Eco Distribution Agreement

Leave empty when commercial agreements with individual device manufactures are required. Individual agreements overrule the default scope for app distribution.

Already have an account ?Click here to login

Forget Password

Requirements

This document specifies the requirements for Whale TV Applications.

It is primarily aimed at app developers and owners. The requirements mentioned here refer only to issues which impact the Whale TV experience, which we of course, want to be as good as possible. 

RequirementExplanation
Mandatory

These requirements are essential and must be fulfilled for an application to be approved and published. Failure to meet any mandatory criteria will block the application from being released. Compliance ensures basic functionality and compatibility across our Smart TV OS.


Marked with severity MAJOR if not covered.

Recommended

These requirements are not strictly necessary for publication but are strongly advised. Implementing recommended criteria enhances user experience, creates consistent behaviour across different content, and ensures the application is future-proof. Addressing these points can significantly improve the app's performance and user experience.


Marked with severity MINOR if not covered.

Optional

These requirements cover features and functionalities that are beneficial but not critical. They may not apply to all types of content provided by the application. While optional criteria can be implemented to further align with cross-content consistency, they are not required for the app to be approved and published. Adopting these features can add little value and improve the overall user experience.


Marked with NA without severity identifier if not covered


CategoryRequirement IDRequiredRequirementsDescription
PerformanceZN-PER-0000Mandatory

Deliver responsive performance.

Deliver responsive performance. This is a subjective impression, quantified by sub-requirements ZN-PER-0100 to ZN-PER-0120
MandatoryObserve navigation when navigating the app interfaceNavigation can move accordingly and will not stop moving
MandatorySwitching pagesPages move logically. The user should be able to enter a new page or leave the current page by clicking the button or back button in the App.
ZN-PER-0100MandatoryApp launches within 12 seconds. Or launches within 16 seconds when a proper loading indicator or animation is shown.

On first accessing the App, the app should load within 8 seconds (on average, with a 10Mbit connection, measured from the moment the remote control is pressed until the moment the App is fully loaded). Or within 12 seconds when a proper loading indicator or animation is in place.


If some data needs more than 2 seconds to load, you could show a 'busy' icon.

ZN-PER-0200MandatoryAction within the app page should respond within 4 seconds.Every action taken by the user should provide a visible response within 4 seconds (on average, with a 10Mbit connection, measured from the moment the remote control button is pushed). This visual response does not need to show the final result of the action.
ZN-PER-0300MandatoryA loading icon should be shown before the start of a video.If the App contains video content, a loading indicator shall be present and shown until the start of each video also when the video goes to a buffering state on performing Fast Forward or Rewind and Next or previous playback operation.
InteractionZN-INT-0000MandatoryAll App pages should provide simple and logical interaction. The user is able to access all functions with remote control.

The app should be simple and logical to interact with; users should be able to access all functionality without any problem using the remote control. As this requirement is somewhat subjective, it is accompanied by several more exact sub-requirements.


The user can access all functions with remote control. If some buttons in the App can be used from the UI instead, it should also be operable through the remote control.

ZN-INT-0100MandatoryRC navigation keys are working.Pressing the up-down-left-right keys gives the corresponding movement on the screen.
RecommendedRC numpad keys are working.When you use digit identifiers to control menu items in the application (0 to 9), these should also be able to be controlled via the remote control.
RecommendedRC play and pause buttons are working.

During video playback, in addition to the App's own pause and play buttons, the pause and play buttons on the remote control can be used to pause and play media.


In case the UI cannot be used to control media this requirement becomes mandatory.

MandatoryRC's back key is working.When the user is on the homepage of the App, using the BACK button should always result in exiting the App and getting back to the Whale TV Home screen directly or via a confirmation pop up.
RecommendedRC colour keys are working.

The app can call these colour keys to realize the functions they need. If there is a visual UI element indicating colour key functionality it should also work.

ZN-INT-0110OptionalSupports pointer navigation using a mouse.All app pages can be navigated using a mouse. Whale TV platforms don't provide pointer support at the moment. This can be offered for future purposes.
ZN-INT-0120MandatoryUI components' are positioned in the correct and logical places for consumers.Understanable UI interaction to identify what the consumer is navigating to and focus clearly on the selected feature/content or action.
MandatoryFocused content is clearly highlighted.In-focus content is differentiates itself clearly from non-focused content. For navigation to be logical (requirement ZN-INT-100) the selected element should always be clearly distinct from non-selected elements through a clear system of highlighting (applying a specific colour/shape style format or animation to the selected element). The same (or a different) highlighting system should also be used with pointing devices.
RecommendedBackgroud media trailler or poster matches with the selected content item if implemented

Some sections in applications contain a poster or trailer playing in the background. If implemented it shall also match with the related content item.

ZN-INT-0130MandatoryOn the initial load of the app, in focus content should be clearly highlighted.When the App is loaded an initial focus should always be clearly visible.
ZN-INT-0140RecommendedGEO-Blocked indication

If the App contains GEO-Blocked content, the consumer should be informed through a message indicating that the content is not available for the country the user is in.


Recommended

The message appears that the app is not available for the country the user is in.

Recommended

The message appears for content that is not available for the country the user is in.

ZN-INT-0150MandatoryContent to be available in minimum languages. Mandatory to have English for Global applications on top of localized languages if present.

Apps shall provide minimum language support in English or main languages depending the regions they are launched in.

ZN-INT-0200MandatoryOn the homepage of the app, there should always be a way to exit the app.When the home screen of the app is visible there should be a way to close the app again, by pressing RC_BACK, or using the remote EXIT function. Anyways the app should always be able to be closed.
MandatoryUsing the RC back key on the internal pages (except the homepage) returns to the previous page.When users use the App, they enter different pages. Users who use the RC back key on any page (except the home page) should return to the previous page.
ZN-INT-0210OptionalUsing Smart TV On-Screen Keyboard (OSK)

Next to multi-tap functionality, you can call the Smart TV On-Screen Keyboard (OSK) on all compatible devices. This keyboard is invoked by pressing OK in a physical input field or text area.

When using OSK the user should also be allowed to navigate from the input field to the OSK and back, so that he or she can choose whether to choose your OSK for text input or standard provided functionality.
Recommended

Navigate from the input field to the OSK and back.

Recommended

The text area has a visible cursor displayed to enter text.

Recommended

Using RC left or right navigation key moves backward/forward respectively.

ZN-INT-0230MandatoryFont size should be at least 18 px.To make sure the texts on the App are readable from a distance of 10ft the font size which is used should be at least 18px.
ZN-INT-0270RecommendedBack key in the input field should clear the text.

When using the remote control back key in an input field (label) should clear the text entered (One character at a time) and when no characters are left, no action should be performed.


Only applies when using your own UI keyboard.

ZN-INT-0280MandatoryApp registration mandatory fields should clearly be markedApp registration mandatory fields should clearly be marked with for example an asterisk symbol or any other visual identification
ZN-INT-0290MandatorySensitive information should be encoded.When a user enters sensitive information (such as a password), the App should encode it instead of displaying it in plain text.
ZN-INT-0310MandatoryLogin and logout options

When a login/ account based system is available in the app, logging out shall be possible. If app supports automatic login systems then when user credentials are changed, these shall be processed and saved well for subsequent entry to the app.


Note: On entering the app there should  be clear visibility on information if user is logged in or logged out.

Mandatory

Successfully login.

Mandatory

Successfully logout.

Mandatory

Clear visibility to identify if user is logged in or logged out.

ZN-INT-0320MandatoryApp needs to provide secure login if it has in-app payment.The payment page is hosted on an https URL.
ZN-INT-0400MandatoryLog in and log out function combined with device registration should work as expected.The app should provide proper messaging when user accounts need to de-register registered devices or notify the user if automatically done.
ZN-INT-0500MandatoryIn the search page, the result of letter entered is corresponding to the letter pressed.Search results is correspond to what is entered
OptionalUsing voice to input search resultSuccessfully search result
MandatoryObserve input characterCheck if there is no conflict between the app keyboard and the device keyboard
MandatoryLong strings or special characters should display an error after puttin it into an input field if not supportedA pop-up or warning message should display in case of not able to search for special characters
VisibilityZN-VIS-0000MandatoryNo scrollbar when navigating the page.App content should match the screen size, can not use scrollbar
MandatoryContent fits screen resolutionContent screen resolution fits device resolution
ZN-VIS-0100MandatoryContent must have enough contrast to be "readable".
Mandatory
Contrast of the text.
Mandatory
Contrast of the focused highlights.
MediaZN-MED-0000MandatoryMedia playback should play smoothly.
MandatoryNo unexpected behavior can be seen by users on a 2mbitline or better such as Delays, Freezes, Hiccups, Lipsynq, Buffering while already started playing or Scrambling.
MandatoryPurchased (Full Version) video playbackSmooth playback, high resolution. Switching video will still have high-quality video playback.
MandatoryContinue playback from last stop point. Only applicable if this feature is implemented.Playback successfully from the resume point
MandatoryObserving playbackNo black screen, no playback error, continue video image, lagging of playback, blur or shaking of image shall be seen. Includes also other generic performance issues on playback.
MandatoryPlayback audioAudio playback normally
ZN-MED-0050MandatoryAll used media in an App shall be able to play until the endAll used media in an App shall play until the end. Regardless of the duration and the file size.
ZN-MED-0100MandatoryPlayback options in an App are obligatoryPlayback options in an App are obligatory; by enabling the playback keys on the remote or by implementing these options in the App itself.
Mandatory

Using the Remote Control or via App UI itself's play key is working.


One of the two options should work.

Mandatory

Using the Remote Control or via App UI itself's pause key is working.


One of the two options should work.

MandatoryDuring playback, press app interface fast forward/rewind/pause buttonsApp interface controls can work normally
ZN-MED-0200MandatoryApp full screen option is working.If available as a feature, full screen mode is visualized by the full screen button in the App itself.
ZN-MED-0300MandatoryLeaving full screen mode.

Leaving full screen mode icon be done by pressing Remote Control BACK or STOP or is made possible via a visualized option in the App itself.


Exception: If your app uses full screen video mode as the background of the app the STOP or the visualized play control option can function as a pause instead of a stop.

MandatoryRC back key leaves full screen mode.

RC Back key or a visual back element leaves full screen mode.

RecommendedRC stop key leaves full screen mode.

RC Stop key or a visual back element leaves full screen mode.

ZN-MED-0400MandatoryAfter playback is done, the app returns to the previous page.

After playback is done the user should be directed to one of below options:

1. The user goes back to the previous page (content detail page from where playback was initially started)


2. In the case of the series, continue to the next episode.


RecommendedPressing  On-screen display buttons as "Play Next", "Skip the Intro"

During playback, on-screen display buttons such as "Play Next" and "Skip the Intro" should function as expected when clicked, directing to the appropriate timestamp.

RecommendedIf subtitles are offered, subtitles should be sync with the video content

If the content has subtitle(s), the subtitle should be display logically and synchronized.

RecommendedIf available, multilanguages switching is propery switching the subtitle language

If the app has an option to set or change subtitles, it should be able to change correctly and smoothly.

MandatoryIf available, multilanguages switching is properly switching the audio language

If the app has an option to change audio tracks or languages, it should be able to change correctly and smoothly.

FunctionalZN-FUN-0001MandatoryDevice recognitionApp Provider will recognize whaleOS devices either via the user agent string or by using the device info API.
ZN-FUN-0100MandatoryDo not use mix content HTTP/HTTPSThis is a security breach according to W3C standard
ZN-FUN-0200MandatoryDo not use hover CSS selector during spatial navigationHover selector is not supported across different browsers and browser versions
ZN-FUN-0300RecommendedDo not use window.close, or verify if it's available. If not, use alternative like window.history.go(-X)Only officially supported for HBBTV
ZN-FUN-0400MandatoryHide the control element (Playback controls), as they cannot be navigated navigation"control" attribute shows a play UI for all HTML5 media element. However these items can not be accessed/selected.
ZN-FUN-0500MandatoryShadow dom in generalThis is a limitation. HTML5 control element is one of Shadow DOM
ZN-FUN-0600MandatoryDo not use window.navigate, use window.locationNot a W3C Standard. Replace with location.assign
ZN-FUN-0700MandatoryDo not use window.attachEventReplace with window.addEventListener
ZN-FUN-0800MandatoryDirect DOM access is not supportedPlease use object ID to access any dom element Ex:  document.getElementById() 
ZN-FUN-0900MandatoryUsing SRC attribute in Video/ audio tag ( HTML5 ) is not supportedAs per W3C standard always use source tag to add media source path and type
ZN-FUN-1000MandatorySpatial navigation will not be supported Use CSS or JavaScript based navigation
ZN-FUN-1100MandatoryUse of content Type "application/CE-HTML+XML" will not be supported. Use HTML instead.Use for generic HTML5 -> "text/html"
ZN-FUN-1200MandatoryUse of "Keypress"event  will not be supportedUse "keydown " event 
ZN-FUN-1400MandatoryUse PreventDefault() function on keydown event when focus is not inside the HTML input field.

PreventDefault() function is not working properly all the times for all devices on all different events, that’s why the common event should be used, which is keydown.



ZN-FUN-1500RecommendedKey input behaviour can be done using the TV virtual keyboard, or the remote control keyboard. There for always better to use the HTML input field, and let the TV UI handle the text entry.Some app providers make their own text or digit labels, but it will cause bad key input behaviour. The best key input behaviour can be done using the TV virtual keyboard, or the remote control keyboard. There for always better to use the HTML input field, and let the TV UI handle the text entry. If that is the case a consumer will have a more generic way of inputting text across different apps.
ZN-FUN-1600MandatoryChanging video object or video tag type by destroying the object and re-creating it.Changing video object or video tag type without destroying it in the DOM can cause issues on Smart TV devices. It’s better to initialize a video object again if you want to change the type.
ZN-FUN-1700MandatoryUse UI safe area, and stick to 1280x720 or 1920x1080 app UI resolutionIf UI elements are created close to the border of the screen slight UI shifts can cause browser-generated scrollbars to appear. Please use enough visual space between the content scrollable section and the edges of the screen to avoid default overflow handling from the internal browser.
ZN-FUN-1900

MandatoryNo specific manufacturer or device brand references visible in the application URLApplication URL's are not allowed to contain text or reference to actual brands e.g. 'Samsung" or "LG". We require generic endpoints to be used instead like "smarttv" or "whaletv"
ZN-FUN-1901

Mandatory

No specific manufacturer references visible in UI / frontend

App frontend sections and sub-sections are not allowed to contain text or references from other TV brands when running on the device. In case a campaign is required individual brand targeting should be implemented.





Interested in becoming an Zeasn partner?
We’d love to hear from you.
Copyright © 2011 -2023 Beijing Zeasn Information Tech CO., Ltd. All Rights Reserved