- * @param string $name Field name.
- * @param string $value Field value
- * @param string $id DOM id for the button (default: null)
- * @param array $attribs
- *
+ * @since 1.27 takes an array as shown. Earlier versions accepted
+ * 'name', 'value', 'id', and 'attribs' as separate parameters in that
+ * order.
+ * @note Custom labels ('label', 'label-message', 'label-raw') are not
+ * supported for IE6 and IE7 due to bugs in those browsers. If detected,
+ * they will be served buttons using 'value' as the button label.
+ * @param array $data Data to define the button:
+ * - name: (string) Button name.
+ * - value: (string) Button value.
+ * - label-message: (string, optional) Button label message key to use
+ * instead of 'value'. Overrides 'label' and 'label-raw'.
+ * - label: (string, optional) Button label text to use instead of
+ * 'value'. Overrides 'label-raw'.
+ * - label-raw: (string, optional) Button label HTML to use instead of
+ * 'value'.
+ * - id: (string, optional) DOM id for the button.
+ * - attribs: (array, optional) Additional HTML attributes.
+ * - flags: (string|string[], optional) OOUI flags.