code: @Override
  	public String getDescription() {
  		// We need to change references to input fields to their label or accessible text.
  		Object[] modifiedArgs = new Object[args.length];
  
  		for (int i = 0; i < args.length; i++) {
  			if (args[i] instanceof Input) {
  				Input input = (Input) args[i];
  				String text = null;
  
  				UIContextHolder.pushContext(uic);
  
  				try {
  					if (input.getLabel() != null) {
  						text = input.getLabel().getText();
  
  						// Some apps use colons at the end of labels. We trim these off automatically
  						if (!Util.empty(text) && text.charAt(text.length() - 1) == ':') {
  							text = text.substring(0, text.length() - 1);
  						}
  					}
  
  					if (text == null) {
  						text = input.getAccessibleText();
  					}
  
  					if (text == null) {
  						text = input.getToolTip();
  					}
  				} finally {
  					UIContextHolder.popContext();
  				}
  
  				modifiedArgs[i] = text == null ? "" : text;
  			} else {
  				modifiedArgs[i] = args[i];
  			}
  		}
  
  		return I18nUtilities.format(null, message, modifiedArgs);
  	}
docs: {@inheritDoc}