Repository: godot
Issue: char_fx.set_visibility - BBCode - RichTextEffects not working as documented. 
Labels: bug,needs testing,topic:gui

### Godot version

Godot Engine v4.0.beta10.official.d0398f62f

### System information

Windows 10 Vulkan API 1.3.205 - Using Vulkan Device #0: NVIDIA - NVIDIA GeForce GTX 960

### Issue description

I'm using BBCode RichTextEffects to hide text. The text only turns invisible but doesn't behave as it would in 3.5 or as the 4.10 documentation states it should.

Text Effect
```gdscript
@tool
extends RichTextEffect
class_name HideText

var bbcode := "hide"

func _process_custom_fx( char_fx : CharFXTransform) -> bool :
    if Settings.hide == true :
        char_fx.set_visibility( false )
    return true  
```

Rich text label script
```gdscript
@onready var page : RichTextLabel = %PageText
var text : String

func _ready():
	page.clear()
	page.custom_effects.append_array( GlobalDictionary.get_text_effects() )
	#append text with bbcode markup
	page.parse_bbcode( text )
	

func set_page_text( _text : String ) -> void :
	_text = _text.insert( _text.find( "\t" ) + 1 , "[color=gray]> [/color]")
	text = _text

```

instance the page:
```gdscript
@onready var page = preload( "res://Scenes/Narration/narritive_page.tscn" )
@onready var narration_pages = %NarrationStack

func _on_story_mode_update_narration( _narration : String ):
	add_page( _narration )


func _ready(): 
	clear_narration()


func clear_narration() -> void :
	#clear pages
	for child in narration_pages.get_children() :
		child.queue_free()


func add_page( page_text : String ) -> void :
	#load and instance page scene
	page = load( "res://Scenes/Narration/narritive_page.tscn" )
	var page_instance = page.instantiate()
	#add text to page
	page_instance.set_page_text( page_text )
	#add page to stack
	narration_pages.add_child( page_instance )
	#_ready() will run and update the RTL, BBCode, etc.
```

**Unparsed text:**
"Integer vitae justo eget magna fermentum iaculis eu non diam.[no_hide]

This should show. [/no_hide][hide]

This should be hidden..[/hide]

Convallis a cras semper auctor neque vitae tempus quam. Integer vitae justo eget magna fermentum iaculis eu non diam."
********************************

**output looks like this :**
"Integer vitae justo eget magna fermentum iaculis eu non diam.

This should show.

> invisible, selectable, space-consuming characters be here!!!!!

Convallis a cras semper auctor neque vitae tempus quam. Integer vitae justo eget magna fermentum iaculis eu non diam."

**********************************

The [hide] tag "works", in that it hides the text. The issue is that you can still select, copy and paste this "hidden" text and it still takes up space. The documentation says that the text should move to take up this space and that if I didn't want this, I should set the Alpha to 0 instead. But it seems like setting the Alpha to 0 is exactly what this char_fx is actually doing, rather than hiding the text and shifting the visible characters as the documentation implies.

I switched to 4.10 because 3.5 would hide the text correctly but the control would still size itself as if the text was still there.

### Steps to reproduce

attempt to hide text using a BBCode tag and RichTextEffect, then append_text(  ) or parse_bbcode on a RichTextLabel 

### Minimal reproduction project

N/A