Suped

Can a BIMI SVG <title> element have an id attribute?

Published 14 Aug 2026
Updated 22 Oct 2026
10 min read
Summarize with
A BIMI SVG title element with an id attribute.
Updated on 22 Oct 2026: We clarified BIMI SVG title validation and the certificate checks needed before editing a logo.
Yes. A BIMI SVG <title> element can have an id attribute. The SVG Tiny Portable/Secure schema used for BIMI explicitly permits it. A conforming validator should accept a title with id set to brand-title when the rest of the document also meets the profile.
The attribute leaves the visible logo unchanged and does not make the title optional. The title still needs non-empty text in the required root position. The BIMI SVG guidance requires a title, while the MDN title reference explains its general SVG accessibility purpose.
The rule that matters
An id on the title is valid. A validator that reports the title as missing solely because the opening tag contains an id is rejecting valid syntax.
  1. Element: Include exactly one title as a direct child of the root SVG element.
  2. Content: Use plain, non-empty text that identifies the company or logo; whitespace alone is not useful title content.
  3. Position: Put the title first inside the root for schema and reader compatibility.
  4. Identifier: Use a unique XML NCName value without spaces, colons, or a leading digit.

Why the id attribute is valid

BIMI does not accept arbitrary SVG files. It uses the restricted SVG Tiny P/S profile. In that profile's RELAX NG Compact schema, the title definition allows either id or xml:id. It also permits class and role attributes, plus language metadata. A permitted attribute does not change the title element's name or namespace. General SVG accessibility examples do not establish which other attributes the restricted BIMI profile accepts.
Valid BIMI SVG structureXML
<?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny-ps" width="512" height="512" viewBox="0 0 512 512"> <title id="brand-title">Example Company</title> <desc>Example Company logo</desc> <rect width="512" height="512" fill="#ffffff"/> <path fill="#29292f" d="M64 64h384v384H64z"/> </svg>
The value still has to satisfy XML NCName rules, which exclude colons and whitespace. A simple ASCII id starts with a letter or underscore and continues with letters, digits, underscores, hyphens, or periods. Keep the value unique across all id and xml:id attributes in the document. Do not place both id and xml:id on the same title because the schema presents them as alternatives.
Valid patterns
  1. Plain title: A non-empty title without attributes is valid.
  2. Named title: A unique id such as brand-title is valid.
  3. Language: An xml:lang attribute can describe the title language.
  4. Description: A non-empty desc can follow the title for more context.
Patterns to reject
  1. Empty text: An empty or whitespace-only title does not supply the required company or logo name.
  2. Nested title: A title inside a group does not satisfy the root rule.
  3. Repeated title: Two root titles fail the one-title requirement.
  4. Bad id: Spaces, colons, leading digits, or duplicate values make the identifier invalid.

What a schema pass proves about the title

Within svgTitle, the BIMI Group's SVG Tiny P/S schema declares the identifier as follows. The question mark makes it optional; the vertical bar permits either spelling.
Identifier attribute rule inside svgTitleRNC
(attribute id { xsd:NCName } | attribute xml:id { xsd:NCName })?
This datatype checks name syntax, but does not enforce document-wide uniqueness. The title's text rule also accepts empty content and has no 64-character cap. A schema pass alone therefore does not prove that every BIMI title requirement is satisfied.
The SVG Tiny P/S profile guidance requires non-empty title text and recommends at most 64 characters. Check the text separately, and XML-escape characters such as & and < in company names.

Why some validators say the title is missing

An id alone does not explain a missing-title error. One possible cause is a source check for the exact characters <title>. That exact string is absent when the opening tag is <title id="brand-title">, even though an XML parser sees the same title element. Also check for a wrong namespace or a genuinely misplaced title.
BIMI SVG validation flow using XML parsing instead of string matching.
BIMI SVG validation flow using XML parsing instead of string matching.
A sound validator parses XML, confirms the SVG namespace, inspects the direct children of the root element, and applies the SVG Tiny P/S schema. It should compare the element's namespace and local name rather than its literal opening tag. XML names are case-sensitive, so Title and title are different elements. A permitted attribute with a valid value should not trigger a missing-title result.
Check the reported rule before changing the SVG
When one validator fails and another passes, inspect the reported rule. After ruling out an invalid or duplicate identifier, a pass caused only by removing id suggests a detection defect. Removing an unreferenced id is an optional compatibility workaround.

Result

Likely cause

Next check

Missing title
Absent root title or detection error
Check root children and SVG namespace
Empty title
Empty or whitespace-only content
Add a company or logo name
Duplicate title
Repeated root title
Keep one direct root title
Invalid id
Value is not an XML NCName
Remove spaces or colons; check the first character
Duplicate id
Identifier reused on another element
Check all id and xml:id values
Compact diagnostic map for title-related validation errors.

How to test and fix the SVG

Start with the file bytes returned by the logo URL, not the source file sitting on a designer's computer. A CDN, deployment task, or optimization step can change the SVG after export. Download the public asset and inspect that copy. Confirm a successful response with Content-Type: image/svg+xml and SVG XML rather than an HTML error page or redirect body.
  1. Fetch: Download the exact HTTPS asset named in the BIMI record.
  2. Parse: Open it as XML and reject malformed markup before checking BIMI rules.
  3. Inspect: Find one non-empty title as the first element child of the SVG root, in the SVG namespace.
  4. Validate: Run the full file against the current SVG Tiny P/S schema, then check title content and identifier uniqueness separately.
  5. Compare: Compare the reported rule with the schema and a second XML-aware validator.
If a recipient still rejects the asset, remove the id only when nothing references it, and record why it was removed. Complete any compatibility edits before certificate issuance. If the id supports an internal authoring workflow, keep a source copy and produce a clean deployment copy. The BIMI validation guide covers the logo and certificate checks around this element-level test.
If a hosted SVG is checked against a Verified Mark Certificate (VMC) or Common Mark Certificate (CMC), removing an unused id changes its logo hash. Certificate image hashing uses the uncompressed SVG content with normalized line endings. Keep the certified file unchanged or arrange a replacement certificate before publishing the edit.
Title patterns to fixXML
<!-- Empty title --> <title id="brand-title"></title> <!-- Whitespace does not provide a useful title --> <title id="brand-title"> </title> <!-- Invalid id value --> <title id="123 brand">Example Company</title> <!-- Nested title does not meet the BIMI root requirement --> <g> <title id="brand-title">Example Company</title> </g> <!-- The schema permits only one identifier attribute --> <title id="brand-title" xml:id="other-title">Example Company</title>
Do not stop after fixing the title. Check version 1.2 and baseProfile tiny-ps, and remove x and y attributes from the SVG root. Exclude scripts, animation, external references, and embedded raster images. Aim for an uncompressed file no larger than 32 kilobytes, with a square viewBox and a solid background. Use at least two rendered colors, and keep the logo readable when cropped into a circle. The SVG dimensions guide explains the geometry and export decisions that affect display.

The SVG can pass while BIMI still fails

A valid title only proves one part of the image profile. BIMI display also depends on the DNS record, the public logo URL, DMARC enforcement, authentication results, and each mailbox provider's display policy. A technically valid SVG does not guarantee that a logo appears beside every message.
For BIMI, use p=quarantine or p=reject with full enforcement. Each message needs to pass DMARC through SPF or DKIM with domain matching to the visible From address. Ongoing DMARC monitoring matters because a later sender change can break eligibility even when the BIMI record and SVG remain untouched.
Run the domain health checker to verify the DMARC, SPF, and DKIM foundation around BIMI. It does not replace schema validation of the SVG, so use it after the image-specific checks, not as proof that the title syntax is valid.
?

What's your domain score?

Deep-scan SPF, DKIM & DMARC records for email deliverability and security issues.

Suped's DMARC reporting product shows which sending sources fail DMARC and helps teams correct authentication before moving to enforcement. Use that reporting workflow to confirm legitimate senders are ready for BIMI's DMARC prerequisite.

BIMI deployment checks beyond the title

Treat the id question as one row in a wider deployment review. This prevents a clean SVG result from hiding a DNS, hosting, certificate, or authentication defect. Google's BIMI file steps specify absolute width and height values of at least 96 pixels for Gmail, in addition to the profile checks below.
  1. SVG profile: Set version 1.2 and baseProfile tiny-ps on the root element.
  2. Title: Keep one non-empty root title; a valid unique id is allowed.
  3. Asset: Host the final SVG at a stable public HTTPS address.
  4. DNS: Publish one BIMI TXT record with the correct selector and logo URL.
  5. DMARC: Enforce quarantine or reject and verify every approved sender.
  6. Certificate: Where required, publish valid certificate evidence and keep the SVG consistent with the certified logo.
Example BIMI DNS recordDNS
default._bimi.example.com. IN TXT ( "v=BIMI1; l=https://assets.example.com/logo.svg;" )
After publication, query the selector from more than one resolver, fetch the logo without authentication, and send representative mail through every approved source. Cache delays explain some early inconsistencies. Persistent failure needs a layer-by-layer check rather than another edit to a title attribute that is already valid. The BIMI setup guide covers the full publishing sequence.

Views from the trenches

Best practices
Parse the public SVG as XML and inspect root children before applying profile rules.
Keep one non-empty title first under the SVG root and use a unique, valid id value.
Validate the deployed asset again because export and CDN steps can alter SVG markup.
Common pitfalls
Literal string checks miss valid opening title tags whenever permitted attributes appear.
A nested or empty title can look correct in an editor but still fail the BIMI profile.
Passing an image check does not prove that DMARC enforcement and BIMI DNS are ready.
Expert tips
Compare conflicting results against the current schema before changing valid markup.
Remove an unused id for compatibility, but keep the standards-compliant source file.
Test each approved mail source after BIMI publication, not only the SVG and DNS record.

Marketer view

Marketer from Email Geeks says a validator should still recognize a title element when its opening tag includes a permitted id attribute.
2026-08-06 - Email Geeks

Marketer view

Marketer from Email Geeks says the SVG Tiny P/S schema permits id on title, provided the required title is present once under the SVG root and contains text.
2026-08-07 - Email Geeks

Frequently asked questions

No. The title and its id are metadata. The visible logo comes from the SVG drawing elements, while the title supplies a short accessible name.

Use a short, non-empty company or logo name as plain text. The profile recommends at most 64 characters; the schema does not impose that limit. XML-escape special characters in the name.

Yes. The schema permits id or xml:id. Use one form with a valid XML NCName, and keep the value unique across identifiers in the SVG document. Do not put both attributes on the same title.

Yes. Put the title first inside the root SVG element. This matches the profile's schema order and gives better compatibility with SVG readers and validators.

A source check for the literal <title> tag is one possible cause. First rule out an invalid or duplicate id. Removing an unused id is a compatibility workaround, but a hosted SVG checked against a certificate must still match the certified logo.
DMARC monitoring

Start monitoring your DMARC reports today

Suped DMARC platform dashboard
What you'll get with Suped
Real-time DMARC report monitoring and analysis
Automated alerts for authentication failures
Clear recommendations to improve email deliverability
Protection against phishing and domain spoofing