docs: function( dialog, elementDefinition, htmlList ) {
  				if ( !arguments.length )
  					return;
  
  				if ( typeof elementDefinition == 'function' )
  					elementDefinition = elementDefinition( dialog.getParentEditor() );
  
  				initPrivateObject.call( this, elementDefinition, { disabled: elementDefinition.disabled || false } );
  
  				// Add OnClick event to this input.
  				CKEDITOR.event.implementOn( this );
  
  				var me = this;
  
  				// Register an event handler for processing button clicks.
  				dialog.on( 'load', function( eventInfo ) {
  					var element = this.getElement();
  
  					( function() {
  						element.on( 'click', function( evt ) {
  							me.click();
  							// #9958
  							evt.data.preventDefault();
  						} );
  
  						element.on( 'keydown', function( evt ) {
  							if ( evt.data.getKeystroke() in { 32: 1 } ) {
  								me.click();
  								evt.data.preventDefault();
  							}
  						} );
  					} )();
  
  					element.unselectable();
  				}, this );
  
  				var outerDefinition = CKEDITOR.tools.extend( {}, elementDefinition );
  				delete outerDefinition.style;
  
  				var labelId = CKEDITOR.tools.getNextId() + '_label';
  				CKEDITOR.ui.dialog.uiElement.call( this, dialog, outerDefinition, htmlList, 'a', null, {
  					style: elementDefinition.style,
  					href: 'javascript:void(0)',
  					title: elementDefinition.label,
  					hidefocus: 'true',
  					'class': elementDefinition[ 'class' ],
  					role: 'button',
  					'aria-labelledby': labelId
  				}, '<span id="' + labelId + '" class="cke_dialog_ui_button">' +
  											CKEDITOR.tools.htmlEncode( elementDefinition.label ) +
  										'</span>' );
  			}