HTML in Oracle APEX Plug-in Help Text & Examples: What Actually Works?
A tested reference for which HTML tags Oracle APEX really renders inside custom plug-in attribute help — and which ones it silently ignores.
When you build your own Oracle APEX plug-in, every custom attribute can carry two separate pieces of documentation: a Help Text and a separate Examples text. Both show up in the Page Designer's contextual help panel the moment a developer clicks on that attribute.
At first glance these look like plain text fields. In reality, Oracle APEX quietly renders a limited subset of HTML inside them — which means your help text can look a lot more polished than a plain paragraph: bold headings, real paragraphs, lists, inline code, and even emojis.
This post documents exactly which HTML tags worked in a hands-on test with Oracle APEX 23.2, which tags were silently ignored, and how to structure a genuinely professional Help Text for your own plug-in attributes.
Where Can These Texts Be Used?
The formatting described in this post applies to two fields on every custom Oracle APEX plug-in attribute:
Explains what the attribute does, what happens when it's enabled, which values are expected, what dependencies it has on other attributes, and what the behavior is when it's disabled. This text appears directly under the name of the selected plug-in attribute.
Reserved for concrete configuration and usage examples — a sample configuration, accepted values, rejected values, expected results, and typical error cases. Oracle APEX automatically displays this content under its own Examples heading, so you don't need to add that heading yourself.
Supported HTML Tags
The following tags were correctly processed in the test.
Bold Text
Both <b> and <strong> work.
<b>Bold text</b>
<strong>Important information</strong>
Both variants render as bold. For semantically important information, <strong> is usually the better choice.
Italic Text
Both <i> and <em> work. <em> is especially well suited for hints or supplementary information at the end of a Help Text.
<i>Italic text</i>
<em>Additional validation rules may still apply.</em>
Line Breaks
A simple line break can be created with <br>. Multiple <br> tags can be stacked to add extra spacing, but for larger blocks of text, real paragraphs with <p> are usually clearer.
First line<br>
Second line<br>
Third line
First section<br><br>
Second section
Paragraphs
The <p> tag is correctly rendered as a paragraph, and paragraphs automatically get a visible gap between them. Note that custom CSS styles placed inside a <p> tag are not applied.
<p>
This is the first paragraph.
</p>
<p>
This is the second paragraph.
</p>
Unordered Lists
Bullet lists with <ul> and <li> work well, and emojis can be added for extra visual orientation — they're plain Unicode characters, not HTML, so they render regardless of which tags are supported.
<ul>
<li>👤 Local part before the @ symbol</li>
<li>📧 The @ symbol</li>
<li>🌐 Domain name</li>
<li>🏷️ Top-level domain</li>
</ul>
Ordered Lists
Numbered sequences can be built with <ol> and <li> — ideal when using a plug-in attribute involves several steps.
<ol>
<li>Enable the validation.</li>
<li>Enter the required value.</li>
<li>Save the component.</li>
</ol>
Inline Code
The <code> tag is a good fit for single values, email addresses, parameter names, or technical terms — Oracle APEX displays it visually like a short code value.
<code>customer@example.com</code>
Use the value <code>50</code>.
Configure the attribute <code>Max. length</code>.
Multi-line Blocks
<pre> can be used to display multi-line configurations. Oracle APEX preserves the line breaks and formatting, and the block is visually separated from the surrounding text — great for configuration examples, SQL/PL-SQL snippets, expected outputs, or several related attribute values.
<pre>Min. check: Enabled
Min. length: 10
Max. check: Enabled
Max. length: 50</pre>
In the tested Oracle APEX 23.2 environment, the following tags were processed successfully:
<b>, <strong>, <i>, <em>, <br>, <p>, <ul>, <ol>, <li>, <code>, <pre>. For reliable plug-in documentation, stick to this confirmed set.
Tags That Are Not Supported
Many other HTML tags were not rendered at all. Instead, Oracle APEX displayed the full HTML markup as plain text. In the test, this affected — among others:
| Not rendered | Not rendered | Not rendered |
|---|---|---|
<span> | <div> | <font> |
<u> | <s> | <small> |
<mark> | <hr> | <blockquote> |
<a> | <details> | <summary> |
<table> | <tr> / <th> / <td> | <sup> / <sub> |
<big> | <tt> | <kbd>, <center> |
An unsupported tag becomes visible, literally, like this:
<span style="color:red;">Red text</span>
CSS, Colors, and Old HTML Attributes
Inline CSS was not supported in the test. Examples like these did not work:
<b style="color:red;">Red bold text</b>
<p style="background-color:#fff3cd;">
Warning text
</p>
<span style="font-size:18px;">
Large text
</span>
Older HTML attributes such as color, size, face, or align were not processed either:
<font color="red">Red text</font>
<p align="center">Centered text</p>
So skip colors and CSS styles for visual emphasis. Instead, rely on what actually works reliably: bold text, italics, emojis, paragraphs, lists, inline code, and multi-line code blocks. In practice, that restricted set is more than enough for professional, well-structured plug-in help text.
Maximum Length of the Help Text Field
In the tested APEX 23.2 system, the HELP_TEXT column was capped at a maximum of 4,000 bytes. A text that was too long produced an error like this:
Unable to process row of table WWV_FLOW_PLUGIN_ATTRIBUTES.
ORA-12899: value too large for column
"APEX_230200"."WWV_FLOW_PLUGIN_ATTRIBUTES"."HELP_TEXT"
(actual: 4034, maximum: 4000)
Recommended Structure for a Help Text
A good Help Text should be built in this order: a short description of the attribute, an explanation of its behavior, its dependency on other attributes, a list of what gets checked, the behavior when enabled and disabled, and optionally a short technical note. One possible structure:
<b>Purpose of the attribute</b><br><br>
Short description of the setting.<br><br>
Explanation of what happens when the setting is enabled.
<b>📋 The validation includes:</b>
<ul>
<li>First checked value</li>
<li>Second checked value</li>
<li>Third checked value</li>
</ul>
<b>✅ Enabled</b><br>
Description of the enabled behavior.<br><br>
<b>⏸️ Disabled</b><br>
Description of the disabled behavior.<br><br>
<em>Optional additional information.</em>
Recommended Structure for the Examples Field
The Examples field should be shorter and more practically oriented. A good structure includes: sample values, accepted input, rejected input, and a brief justification. Since Oracle APEX automatically adds the "Examples" heading, the content can start directly with the actual example:
🧪 <b>Example configuration</b>
<pre>Attribute: Enabled
Value: 10</pre>
✅ <b>Accepted</b><br>
<code>valid-value@example.com</code><br><br>
❌ <b>Rejected</b><br>
<code>invalid-value</code><br><br>
The second value is rejected because it does not meet the configured rule.
Full Practical Example: Minimum Length
Here's how this comes together in a real plug-in. Imagine an email validator with two related attributes: ⬇️ Min. check (enables the check) and 🔢 Min. length (defines the required minimum number of characters).
Help Text for "Min. check"
<b>⬇️ Minimum-length validation</b><br><br>
Enables the minimum-length validation for the complete email address.<br><br>
When enabled, the validator compares the total number of characters with
the value configured under <strong>🔢 Min. length</strong>.<br><br>
<b>📋 The character count includes:</b>
<ul>
<li>👤 Local part before the @ symbol</li>
<li>📧 The @ symbol</li>
<li>🌐 Domain name</li>
<li>🔹 Dots and hyphens</li>
<li>🏷️ Top-level domain</li>
</ul>
<b>⚙️ Behavior</b>
<ol>
<li>Enable <strong>⬇️ Min. check</strong>.</li>
<li>Enter a value under <strong>🔢 Min. length</strong>.</li>
<li>The complete email address will be checked.</li>
</ol>
<p>
<b>✅ Enabled:</b><br>
The configured minimum length is validated.
</p>
<p>
<b>⏸️ Disabled:</b><br>
The configured minimum length is ignored.
</p>
<em>Other enabled validation rules may still reject the email address.</em>
Examples Text for "Min. check"
🧪 <b>Example configuration</b>
<pre>Min. check: Enabled
Min. length: 10</pre>
✅ <b>Accepted</b><br>
<code>user@example.com</code><br><br>
❌ <b>Rejected</b><br>
<code>a@b.co</code><br><br>
The second email address is rejected because it contains fewer than 10 characters.
Full Practical Example: Maximum Length
Help Text for "Max. length"
<b>🔢 Maximum length</b><br><br>
Defines the maximum number of characters allowed for the complete email
address.<br><br>
This value is only applied when <strong>⬆️ Max. check</strong> is enabled.
<b>📋 The character count includes:</b>
<ul>
<li>👤 Local part before the @ symbol</li>
<li>📧 The @ symbol</li>
<li>🌐 Domain name</li>
<li>🔹 Dots and hyphens</li>
<li>🏷️ Top-level domain</li>
</ul>
<b>🔢 Required value</b><br><br>
Enter a positive whole number.
<p>
<b>✅ Valid value:</b><br>
<code>50</code>
</p>
<p>
<b>❌ Invalid value:</b><br>
<code>-10</code>
</p>
<em>This setting validates only the total character count. Other enabled
rules may still reject the email address.</em>
Examples Text for "Max. length"
🧪 <b>Example configuration</b>
<pre>Max. check: Enabled
Max. length: 50</pre>
✅ <b>Accepted</b><br>
<code>customer.service@example.com</code><br><br>
❌ <b>Rejected</b><br>
<code>customer-service-international-department@very-long-example-domain.com</code><br><br>
The second email address is rejected because its total length exceeds 50 characters.
Best Practices for Professional Plug-in Help Text
Final Thoughts
Oracle APEX does not support full HTML inside the Help and Examples fields of custom plug-in attributes — but the limited set of basic tags it does support is more than enough to build clean, professional help text. The most reliable elements are <b>, <strong>, <i>, <em>, <br>, <p>, <ul>, <ol>, <li>, <code>, and <pre>.
Colors, CSS, tables, links, containers, and other complex HTML elements should be avoided, since they weren't rendered in the tested APEX 23.2 system and instead showed up as plain text. With short labels, a clear separation between Help Text and Examples, purposeful emojis, and this simple set of HTML tags, you can noticeably improve the usability of your own Oracle APEX plug-ins.
{fullWidth}