COMPO · 34.00 · TEXT ROLE TAXONOMY

Name the text role.
Do not rank it yet.

34.00 открывает Topic 34 «Типографическая иерархия». Он объявляет owner-qualified text subjects и semantic typographic roles: TITLE, SUBTITLE, BODY, CAPTION, META и OWNER_DEFINED. Роль здесь — семантическая декларация. Scale, weight/style/case, color/contrast, accessibility, ordering, hierarchy graph и scoring остаются downstream.

Module34.00
Progress1/7 local
Roles6 canonical
Ranknone
Metricsnone
Next34.01 only

34.00 owns semantic role declarations only

Text role is not computed from font size, weight or color. It is explicit input with provenance.

00 / taxonomy shell
explicit TextRoleSubjectBinding + explicit TextRoleBinding + explicit TextRoleDeclarationRequest → TextRoleDescriptor state = DECLARED_TYPOGRAPHIC_ROLE NO hierarchy rank NO type scale NO weight/style/case hierarchy NO color/contrast hierarchy NO readability/accessibility evaluation NO multi-block ordering NO hierarchy graph NO scoring

Canonical semantic roles

These labels describe editorial/semantic typographic function. They do not prescribe visual styling by themselves.

01 / role vocabulary
TITLE

Primary title-like content

Not automatically the largest text.

SUBTITLE

Subtitle / deck

Not automatically hierarchy rank 2.

BODY

Running text

No size or weight implication.

CAPTION

Caption / annotation

No “smallest text” rule here.

META

Metadata

No low-importance claim.

OWNER_DEFINED

External semantic role

Must carry an explicit role name.

Roles bind to owner-qualified text subjects

34.00 references content; it does not own raw text value or TextBlock geometry.

02 / subject identity

External text source → semantic role

TEXT SUBJECTtextSubjectRefowner + scope + snapshot ROLEtypographicRole = BODYprovenance = STYLE_PRESET semantic declaration · no geometry ownership

Topic 33 headline intent and Topic 34 semantic role coexist

A headline object can be referenced by 34.00, but its Topic 33 `compositionRole` is not converted into a semantic text role.

03 / cross-topic firewall

Same object, different owned dimensions

TOPIC 33DOMINANT_CANDIDATEcompositional intent TOPIC 34TITLEsemantic typographic role ≠
DOMINANT_CANDIDATE ≠ TITLE. Either dimension may exist without implying the other.

One primary role per subject, many subjects per role

This keeps primary semantic classification deterministic while allowing several BODY, CAPTION or META subjects in the same scene.

04 / role identity
ALLOWED

BODY × many subjects

Same semantic role can repeat.

INVALID

One subject × two primary roles

Secondary-role modeling requires another owner.

ALLOWED

Same content × multiple subjects

Distinct owner-qualified objects may reuse content.

Hierarchy is intentionally staged

Each downstream module adds a different evidence channel rather than making 34.00 roles secretly encode style.

05 / downstream ownership
34.00

semantic role taxonomy

→
34.01

type scale / ratios

→
34.02

weight / style / case

→
34.03

color / contrast

→
34.04

readability / accessibility

→
34.05

multi-block ordering

→
34.06

scoring / tests

Semantic labels do not encode visual law

The most important firewall in 34.00 is that editorial role and measured visual hierarchy remain separate.

06 / epistemic boundaries

TITLE

≠ largest, boldest, brightest or first by geometry.

CAPTION / META

≠ automatically tiny, low-contrast or inaccessible.

ROLE

≠ rank, reading order, accessibility state or score.

Topic 34 starts with clean semantic identity

34.01 can now compare explicit type-scale evidence across declared roles without guessing which block is title, body or caption.

07 / next boundary
Next: `Compo 34.01 — Type scale и hierarchy ratios`. Topic 34 is now 1/7 local.

34.00 regression suite

Tests cover canonical role vocabulary, owner-defined roles, content/headline references, one-primary-role semantics, repeatable roles across subjects, exact scope/snapshot lineage, Topic 33 compatibility without role conflation, bounded explicit resolution, upstream immutability and strict absence of rank, scale, style, color, accessibility, ordering, hierarchy graph and scoring logic.

08 / runtime
Tests not run yet.

DATA FOR LAYOUT ENGINE

Canonical machine contract for Topic34 semantic text-role declarations.

09 / machine
{
  "module": "Compo 34.00",
  "name": "text_role_taxonomy",
  "version": "1.0-canonical",
  "canonical_main_title": "Text role taxonomy",
  "topic": "34_ТИПОГРАФИЧЕСКАЯ_ИЕРАРХИЯ",
  "scope": "EXPLICIT_OWNER_QUALIFIED_TEXT_SUBJECTS_AND_SEMANTIC_TYPOGRAPHIC_ROLE_BINDINGS_ONLY_WITHOUT_HIERARCHY_RANK_SCALE_WEIGHT_STYLE_CASE_COLOR_CONTRAST_READABILITY_ACCESSIBILITY_ORDERING_OR_SCORING",
  "main_topic_contract": {
    "topic_title": "Типографическая иерархия",
    "topic_goal": "Строит типографическую иерархию title/subtitle/body/caption/meta по scale, weight, case, color и порядку; отдельно фиксирует минимальную читаемость и accessibility constraints.",
    "expected_output": "TextHierarchyGraph, type levels, hierarchy violations",
    "planned_files": [
      "34.00 Text role taxonomy",
      "34.01 Type scale и hierarchy ratios",
      "34.02 Weight / style / case hierarchy",
      "34.03 Color / contrast hierarchy",
      "34.04 Минимальная читаемость, size floors и accessibility constraints",
      "34.05 Multi-block ordering",
      "34.06 Scoring и tests"
    ]
  },
  "ownership": {
    "owner": "Compo34.00",
    "owns": [
      "TextRoleSubjectRepresentationKind taxonomy",
      "TextRoleSubjectBinding",
      "TypographicTextRole taxonomy",
      "TextRoleBinding",
      "TextRoleDeclarationRequest",
      "TextRoleTaxonomyPolicy",
      "TextRoleDescriptor",
      "TextRoleDescriptorSet",
      "TextRoleTaxonomyAttachment",
      "owner-qualified text-subject identity",
      "semantic typographic role identity",
      "owner-defined role naming",
      "role provenance binding",
      "same-role multiple-subject semantics",
      "33.00 headline-reference compatibility shell",
      "bounded explicit role declaration resolution",
      "duplicate subject/role identity validation",
      "DECLARED_TYPOGRAPHIC_ROLE state",
      "non-mutating correction request"
    ],
    "does_not_own": [
      "text content mutation",
      "text extraction",
      "text tokenization",
      "automatic semantic role classification",
      "automatic title detection",
      "automatic subtitle detection",
      "automatic body/caption/meta detection",
      "33.00 headline compositional-intent role",
      "34.01 type scale",
      "34.01 hierarchy ratios",
      "34.02 weight hierarchy",
      "34.02 style hierarchy",
      "34.02 case hierarchy",
      "34.03 color hierarchy",
      "34.03 contrast hierarchy",
      "34.04 readability constraints",
      "34.04 accessibility constraints",
      "34.05 multi-block ordering",
      "34.06 hierarchy scoring",
      "34.06 hierarchy violations scoring",
      "35.00 TextBlock geometry",
      "36 typography spacing",
      "37 text-image relation",
      "automatic hierarchy graph inference",
      "automatic hierarchy rank assignment",
      "automatic winner selection",
      "foreign text mutation",
      "universal beautyScore"
    ]
  },
  "representation_kinds": [
    "TEXT_CONTENT_REFERENCE",
    "HEADLINE_REFERENCE",
    "OWNER_DEFINED"
  ],
  "text_roles": [
    "TITLE",
    "SUBTITLE",
    "BODY",
    "CAPTION",
    "META",
    "OWNER_DEFINED"
  ],
  "role_semantics": {
    "TITLE": "semantic typographic role declaration for primary title-like content; not a measured hierarchy rank",
    "SUBTITLE": "semantic role declaration for subtitle/deck-like content; not a guaranteed second hierarchy level",
    "BODY": "semantic role declaration for principal running text; no size/readability implication",
    "CAPTION": "semantic role declaration for caption/annotation-like content; no proximity/image-relation implication",
    "META": "semantic role declaration for metadata/supporting informational text; no small-size implication",
    "OWNER_DEFINED": "explicit externally named semantic typographic role",
    "role_is_semantic_declaration": true,
    "role_is_hierarchy_rank": false,
    "role_is_visual_importance_score": false,
    "role_is_reading_order": false
  },
  "identity_semantics": {
    "text_subject_identity": "textSubjectRef + textSubjectOwnerRef under exact scopeRef/snapshotRef",
    "role_binding_identity": "textSubjectRef + typographicRole + ownerDefinedRoleName(if any)",
    "one_primary_role_per_subject": "required in 34.00",
    "same_role_multiple_subjects": "allowed",
    "same_content_multiple_subjects": "allowed",
    "same_subject_multiple_roles": "INVALID in 34.00; future secondary-role systems require a separate owner",
    "HEADLINE_REFERENCE": "may point to a 33.00 headline object but does not reuse 33.00 compositional-intent role"
  },
  "descriptor_semantics": {
    "state": "DECLARED_TYPOGRAPHIC_ROLE",
    "semantic_role": "owned by 34.00",
    "hierarchy_rank": "DEFERRED",
    "type_scale": "DEFERRED_TO_34_01",
    "hierarchy_ratios": "DEFERRED_TO_34_01",
    "weight_style_case": "DEFERRED_TO_34_02",
    "color_contrast": "DEFERRED_TO_34_03",
    "readability_accessibility": "DEFERRED_TO_34_04",
    "multi_block_order": "DEFERRED_TO_34_05",
    "hierarchy_graph": "DEFERRED_TO_34_05_OR_34_06",
    "violations": "DEFERRED_TO_34_06",
    "score": "NONE"
  },
  "compatibility_semantics": {
    "headline_reference": "optional structural reference to 33.00 HeadlineDescriptor; 34.00 role remains distinct from 33.00 compositionRole",
    "text_block_geometry": "not required and not owned; Topic35 may later attach geometry",
    "content_reference": "preserved from external owner; content text value is not copied into canonical 34.00 state",
    "scope_snapshot": "all subject/role/request records must resolve under exact scope/snapshot"
  },
  "policy": {
    "request_mode": "EXPLICIT_TEXT_ROLE_DECLARATIONS_ONLY",
    "max_subject_bindings": [
      1,
      131072
    ],
    "max_role_bindings": [
      1,
      131072
    ],
    "max_role_requests": [
      1,
      131072
    ],
    "overflow": "N_A_NO_TRUNCATION",
    "duplicate_subject_binding_ref": "INVALID",
    "duplicate_role_binding_ref": "INVALID",
    "duplicate_request_ref": "INVALID",
    "duplicate_text_subject_identity": "INVALID",
    "multiple_primary_roles_per_subject": "INVALID",
    "auto_text_extraction": false,
    "auto_tokenization": false,
    "auto_role_classification": false,
    "auto_title_detection": false,
    "auto_hierarchy_rank": false,
    "auto_type_scale": false,
    "auto_weight_style_case_hierarchy": false,
    "auto_color_contrast_hierarchy": false,
    "auto_readability_evaluation": false,
    "auto_accessibility_evaluation": false,
    "auto_multi_block_ordering": false,
    "auto_hierarchy_graph": false,
    "auto_scoring": false
  },
  "status_semantics": {
    "OK": "one explicit owner-qualified text subject resolves to one explicit semantic typographic role under compatible scope/snapshot",
    "N_A": "required subject/role/upstream headline lineage is missing or scope/snapshot mismatches, or bounds overflow",
    "INVALID": "malformed binding/request/policy, unsupported taxonomy value, missing owner-defined name, duplicate identity, or multiple primary roles for one subject",
    "zero": "34.00 owns no numeric hierarchy measure; zero in downstream typography must never stand for N_A"
  },
  "firewalls": [
    "text role != hierarchy rank",
    "TITLE != automatically largest text",
    "SUBTITLE != automatically second-largest text",
    "BODY != automatically normal font weight",
    "CAPTION != automatically smallest text",
    "META != automatically lowest visual importance",
    "semantic role != reading order",
    "semantic role != visual importance score",
    "semantic role != accessibility status",
    "text role taxonomy != type scale",
    "text role taxonomy != hierarchy ratio",
    "text role taxonomy != weight/style/case hierarchy",
    "text role taxonomy != color/contrast hierarchy",
    "text role taxonomy != readability evaluation",
    "text role taxonomy != multi-block ordering",
    "text role taxonomy != hierarchy graph",
    "text role taxonomy != score",
    "33.00 DOMINANT_CANDIDATE != 34.00 TITLE",
    "33.00 headline compositionRole != 34.00 semantic typographic role",
    "HEADLINE_REFERENCE does not mutate 33.00 headline state",
    "34.00 does not own Topic35 TextBlock geometry",
    "34.00 does not own Topic36 spacing",
    "34.00 does not own Topic37 text-image relation",
    "same role across multiple text subjects != duplicate error",
    "same subject with multiple primary roles = INVALID in 34.00",
    "role provenance != role truth probability",
    "N_A != 0",
    "INVALID != 0",
    "descriptor != score",
    "local != global",
    "geometry != interpretation",
    "heuristic != law",
    "no universal semantic-role hierarchy weights",
    "no universal beautyScore"
  ],
  "owns_metrics": [],
  "independent_numeric_votes": 0,
  "topic34ProgressAfterThisModule": "1/7 local",
  "next_module": "Compo 34.01 — Type scale и hierarchy ratios",
  "topic35_started": false,
  "publication": "NOT_VERIFIED"
}
VISITS / ...