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


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. 

CategoryZEASN Requirement IDREQUIREDRequrtementsDescription

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 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 button or back button in the App.
ZN-PER-0100MandatoryApp launches within 8 seconds.On first accessing the App, the app should load within 8 seconds (on average, with a 2Mbit connection, measured from the moment the remote control is pressed until the moment the App is fully loaded).
ZN-PER-0200MandatoryAction within 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 2Mbit 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.

If some data needs more than 2 seconds to load, you could show a 'busy' icon.
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 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. User is able to access all functions with remote control.

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

User is able to access all functions with remote control. If some buttons in the App can be clicked with the mouse, it should also be operable through the remote control.

ZN-INT-0100MandatoryRC navigation keys are working.Navigation on the remote control includes: up key, down key, left key, right key, and back key and OK key (enter key). Pressing these keys is the correct response of the App.
MandatoryRC numpad keys are working.There are number keys from 0 to 9 on the remote control. If you enter content in the App, they should work.
MandatoryRC 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 should also be able to pause and play the video.
MandatoryRC 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 Homescreen.
MandatoryRC color keys are working.

On the remote control of each platform, most of them have red key, green key, yellow key and blue key.

App can call these color keys to realize the functions they need.

ZN-INT-0110OptionalSupports pointer navigation using mouse.All app pages can navigate using mouse.Whale TV platforms support pointer devices. Therefore your Apps should also support pointer navigation. 

This means the whole App, apart from text input, can be accessed using only a mouse.
ZN-INT-0120MandatoryIn focused content is clearly highlighted.In focused content is differentiate clearly from non-focused contents.The use of spatial navigation is preferred for Whale TV platforms. 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 color/shape style format or animation to the selected element). The same (or a different) highlighting system should also be used with pointing devices.
ZN-INT-0130MandatoryOn 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 content which is GEO-Blocked this should be made clear to the consumer using a message indicating that the content is not available for the country the user is in.


Message appears for app is not avaliable for the country user is in.


Message appears for content that is not avaliable for the country user is in.

ZN-INT-0150MandatoryContent in minimum languages for Intertional Apps

Text heavy apps should have minimum languages English, Russian, German, French, Italian, Spanish and Portuguese.

Text light apps (like for instance games without ambiguous items) can be offered in English.

ZN-INT-0200MandatoryOn the homepage of the app, there should always be a way to exit the app.When the homescreen 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 RC back key on the internal pages (except homepage) returns to 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-0210RecommendedUsing 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 the input field or textarea. Developing your own OSK is highly discouraged.. When doing so using an input field is still mandatory and it should allow all default behavior (Smart TV OSK, multitap, HID keyboard support). Additionally your OSK is required to support pointer devices and should be shown when the focus lands on the input or textarea element. The user should also be allowed to navigate from the input field to the OSK and back, so that he or she can choose wether to choose your OSK for text input or standard provided functionality. 


Navigate from the input field to the OSK and back.


Text area have visible cursor displayed to enter text.


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-0270MandatoryBack key in the input field should clear the text.

Back key in the Input field should clear the text entered (One character at a time) and when no characters is no action should be performed.

Note:Default browser behavior of back should not be prevented.

ZN-INT-0280MandatoryApp registration mandatory fields should clearly mark with asterisk symbol.App registration mandatory fields should clearly mark with asterisk symbol.
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 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 app there should  be clear visibility on information if user is logged in or logged out.


Successfully login.


Successfully logout.


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.When an app has in-app payment, or requires secure login, the shall be hosted on a https URL.
ZN-INT-0400MandatoryLog in and log out function combined with device pairing should work as expected.App should provide proper messaging when user accounts need to unpair the paired 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 result is correspond to what is entered.In the search page, the result of letter entered is corresponding to the letter pressed.
MandatoryUsing voice to input search resultSuccessfully search result
MandatoryObserve input characterCheck if there is conflict between app keyboard and device keyboard.The characters entered by the user in the ipnut box of the App should be visible and displayed on the screen.
MandatoryInput long character or special charactersPop-up for cannot 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 fits screen resolution
ZN-VIS-0100MandatoryContent must have enough contrast to be "readable".Content must have enough contrast to be "readable".
Contrast of the text.
Contrast of the focused highlights.
MediaZN-MED-0000MandatoryMedia playback should play smoothly.All used media in an App shall play fluently. No 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 pointIf the video exits midway through playback, when the video is played again, it should continue to play from the time it stopped when the video was last exited.
MandatoryOberserving playbackNo blackscreen, no playback error, continue video image, lagging of playback, blur or shaking of image
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 filesize.
ZN-MED-0100MandatoryPlayback options in an App are obligatoryPlayback options in an App are obligatory; by enabling the playback keys on the remote and by implementing these options in the App itself.
MandatoryDuring playback, press app interface fast forward/rewind/pause buttonsDuring video playback, in addition to the App's own fast forward/rewind/pause buttons, the fast forward/rewind/pause keys on the remote control should also be able to forward/rewind/pause the video.
RC and App itself's play key is working.
RC and App itself's pause key is working.
ZN-MED-0200MandatoryApp full screen option is working.Full Screen mode is visualized by the Full Screen button in the App itself.
ZN-MED-0300MandatoryLeaving full screen mode.

Leaving Full Screen mode is done by pressing RC_Back or is made possible via a visualized option in the App itself. When RC_Stop is pressed, Full Screen mode is also cancelled. All RC keys may cancel full screen.

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


RC back key leaves full screen mode.


RC stop key leaves full screen mode.

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

After playback is done, the app returns to the previous page.


If Video supports playing in both PIP and Fullscreen mode. If app is playing video in PIP mode during finished state of video, App should let user replay or select any other video for playback from available playlist.  If video is playing in full screen mode during finished state then app should redirect back to page where new video can be selected for played back.

FUNCTIONALZN-FUN-0100MandatoryDo not use mix content HTTP/HTTPSThis is a security breach according to W3C standard. By default, browsers are not allowed to call http resources in https. If the HTTPS page includes content encrypted by a plain-text HTTP connection, the connection is only partially encrypted: non-encrypted content can be hacked by the sniffer and modified by a man-in-the-middle attacker, so the connection is no longer protected.
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 avialable. 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 navigatednavigation"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.navigateNot 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 sourch 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 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 supportedMany platforms now do not support keypress events. If the app only uses keypress, the device will not respond properly. It is recommended to use keydown event.
ZN-FUN-1300MandatoryMake use of VK_ constants

Smart TV devices can have different key codes for different device. That’s why Smart TVs came with the VK_ constants usage. So please do not check for keycode values, but we should check if the event keycode equals a VK_ constant, like for example VK_BACK

ZN-FUN-1400MandatoryUse PreventDefault() function on keydown event

If 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 a 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 Browser generated scrollbars was a common issue in the past, but not anymore as most of the app providers now how that works nowadays.
ZN-FUN-1800RecommendedProvide good trick mode options for consumers.Good examples. App can seek, but additionally it divides the video content into 10 parts, wants you press any key a UI popup up where you can seek, but it will also provide you 10 digits option, if you press 5, you go halfway the content, very convenient behaviour. Or they provide small images of the different timestamps from which you can seek, let’s call that sort of chapter seeking. Very nice for a consumer, but it requires you to have the content. Trick modes can be done using position seek or speed seek depending the technology.

MandatoryNo specific manufacturer references visible in source codeApp and source code URL’s are not allowed to contain text referring any of the manufacturers offering the Smart TV platform. In fact these URL’s are not allowed to contain the text or reference to 'Philips', 'Sharp', 'Bang & Olufsen' or any future manufacturer offering the Smart TV platform. We advise to use 'smarttv'.


No specific manufacturer references visible in frontend

App frontend sections and sub sections are not allowed to contain the text or reference to 'Philips', 'Sharp', 'Bang & Olufsen' or any future manufacturer offering the Smart TV platform.

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