### Godot version

4.0.rc6

### System information

Windows 10

### Issue description

Disabled items of an `ItemList` still trigger `item_selected` and `item_activated` signals when using the mouse. Even though the documentation states that:
> Disabled items cannot be selected and do not trigger activation signals (when double-clicking or pressing Enter).

Visually, they are as expected (grayed out and can't grab focus).

-----
This seems to be a recurring problem as it has happened in Godot 2 (#5683) and Godot 3 (#37277) as well.
According to the comments in #37277, PR #37285 (#60123) is supposed to fix it for Godot 4. But it still seems to be an issue.

The PR suggests using `disabled` for rendering and `selectable` for actual selection. If that's the final verdict on the matter, then the documentation should be updated to reflect this.

### Steps to reproduce

1. Create a simple scene.
2. Add an `ItemList` and add several items to it via the Inspector. Disable one or more items.
3. Attach a script to the item list with the following code:
```gdscript
extends ItemList


func _ready() -> void:
	item_activated.connect(_on_item_activated)
	item_selected.connect(_on_item_selected)


func _on_item_activated(item_index: int) -> void:
	prints("Item Activated:", item_index)


func _on_item_selected(item_index: int) -> void:
	prints("Item Selected:", item_index)
```
4. Run the project and try selecting/activating a disabled item.
5. Check the Output console for results.

### Minimal reproduction project

[ItemList_DisabledItem_Bug.zip](https://github.com/godotengine/godot/files/10844570/ItemList_DisabledItem_Bug.zip)

}
				Vector2 text_ofs;
				if (items[i].icon.is_valid()) {
					Size2 icon_size;
					
					if (fixed_icon_size.x > 0 && fixed_icon_size.y > 0) {
						icon_size = fixed_icon_size * icon_scale;
					} else {
						icon_size = items[i].get_icon_size() * icon_scale;
					}
					Vector2 icon_ofs;
					Point2 pos = items[i].rect_cache.position + icon_ofs + base_ofs;
					if (icon_mode == ICON_MODE_TOP) {
						pos.x += Math::floor((items[i].rect_cache.size.width - icon_size.width) / 2);
						pos.y += theme_cache.icon_margin;
						text_ofs.y = icon_size.height + theme_cache.icon_margin * 2;
					} else {
						pos.y += Math::floor((items[i].rect_cache.size.height - icon_size.height) / 2);
						text_ofs.x = icon_size.width + theme_cache.icon_margin;
					}
					Rect2 draw_rect = Rect2(pos, icon_size);
					if (fixed_icon_size.x > 0 && fixed_icon_size.y > 0) {
						Rect2 adj = _adjust_to_max_size(items[i].get_icon_size() * icon_scale, icon_size);
						draw_rect.position += adj.position;
						draw_rect.size = adj.size;
					}
					Color icon_modulate = items[i].icon_modulate;
					if (items[i].disabled) {
						icon_modulate.a *= 0.5;
					}