function() {
      var userAgent                   = this.USER_AGENT.toLowerCase(),
          // Essential for making html elements editable
          hasContentEditableSupport   = "contentEditable" in testElement,
          // Following methods are needed in order to interact with the contentEditable area
          hasEditingApiSupport        = document.execCommand && document.queryCommandSupported && document.queryCommandState,
          // document selector apis are only supported by IE 8+, Safari 4+, Chrome and Firefox 3.5+
          hasQuerySelectorSupport     = document.querySelector && document.querySelectorAll,
          // contentEditable is unusable in mobile browsers (tested iOS 4.2.2, Android 2.2, Opera Mobile, WebOS 3.05)
          isIncompatibleMobileBrowser = (this.isIos() && iosVersion(userAgent) < 5) || (this.isAndroid() && androidVersion(userAgent) < 4) || userAgent.indexOf("opera mobi") !== -1 || userAgent.indexOf("hpwos/") !== -1;
      return hasContentEditableSupport
        && hasEditingApiSupport
        && hasQuerySelectorSupport
        && !isIncompatibleMobileBrowser;
    }
function() {
      var userAgent                   = this.USER_AGENT.toLowerCase(),
          // Essential for making html elements editable
          hasContentEditableSupport   = "contentEditable" in testElement,
          // Following methods are needed in order to interact with the contentEditable area
          hasEditingApiSupport        = document.execCommand && document.queryCommandSupported && document.queryCommandState,
          // document selector apis are only supported by IE 8+, Safari 4+, Chrome and Firefox 3.5+
          hasQuerySelectorSupport     = document.querySelector && document.querySelectorAll,
          // contentEditable is unusable in mobile browsers (tested iOS 4.2.2, Android 2.2, Opera Mobile, WebOS 3.05)
          isIncompatibleMobileBrowser = (this.isIos() && iosVersion(userAgent) < 5) || (this.isAndroid() && androidVersion(userAgent) < 4) || userAgent.indexOf("opera mobi") !== -1 || userAgent.indexOf("hpwos/") !== -1;
      return hasContentEditableSupport
        && hasEditingApiSupport
        && hasQuerySelectorSupport
        && !isIncompatibleMobileBrowser;
    }
function ( ) { var userAgent = this . USER_AGENT . toLowerCase ( ) , // Essential for making html elements editable hasContentEditableSupport = "contentEditable" in testElement , // Following methods are needed in order to interact with the contentEditable area hasEditingApiSupport = document . execCommand && document . queryCommandSupported && document . queryCommandState , // document selector apis are only supported by IE 8+, Safari 4+, Chrome and Firefox 3.5+ hasQuerySelectorSupport = document . querySelector && document . querySelectorAll , // contentEditable is unusable in mobile browsers (tested iOS 4.2.2, Android 2.2, Opera Mobile, WebOS 3.05) isIncompatibleMobileBrowser = ( this . isIos ( ) && iosVersion ( userAgent ) < 5 ) || ( this . isAndroid ( ) && androidVersion ( userAgent ) < 4 ) || userAgent . indexOf ( "opera mobi" ) !== - 1 || userAgent . indexOf ( "hpwos/" ) !== - 1 ; return hasContentEditableSupport && hasEditingApiSupport && hasQuerySelectorSupport && ! isIncompatibleMobileBrowser ; }
Exclude browsers that are not capable of displaying and handling
contentEditable as desired:
- iPhone, iPad (tested iOS 4.2.2) and Android (tested 2.2) refuse to make contentEditables focusable
- IE < 8 create invalid markup and crash randomly from time to time

@return {Boolean}
Exclude browsers that are not capable of displaying and handling contentEditable as desired : - iPhone iPad ( tested iOS 4 . 2 . 2 ) and Android ( tested 2 . 2 ) refuse to make contentEditables focusable - IE < 8 create invalid markup and crash randomly from time to time
Determines whether the browser supports contentEditable