Currently, TabPane button content is specified via the TabPane.label and TabPane.icon attached properties. Accordion header content is set via Accordion.label and Accordion.icon. This limits the content of these buttons to an icon and/or a text string.
It might be better to allow callers to specify data for these buttons directly. The attached label and icon properties could be replaced with "tabButtonData" and "panelHeaderData" (or simply "buttonData" and headerData"), and each container could allow a caller to specify a renderer (via get/setButtonDataRenderer() and get/setHeaderDataRenderer(), respectively).