If in the `addButton` method, you set `var button = $('<button class="dialog-button"></button>');` instead of `var button = $('<div class="dialog-button"></div>');` you can simplify a lot the `onKeydown_` event to something like:

    DialogController.prototype.onKeydown_ = function(e) {
      if (e.keyCode === 27)
         this.onClick_('cancel');
    }

Return nothing (eg. `true`) there tells the event-chain to continue (meaning the default event handler will be called). Therefore, the <tab> events will be handled nicely by the tabindex suite. Moreover, by casting it to a button, we get for free the <enter> and <space> key press events.

By doing so, we can also remove `this.editor_` since `disableEverything_` already takes care of disabling it and all other things.
 The file `js/editor-cm.js` would be therefore untouched and the `DialogController` constructor would only need the `container`.