### 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)

int i = closest;
			if (select_mode == SELECT_MULTI && items[i].selected && mb->is_command_or_control_pressed()) {
				deselect(i);
				emit_signal(SNAME("multi_selected"), i, false);
			} else if (select_mode == SELECT_MULTI && mb->is_shift_pressed() && current >= 0 && current < items.size() && current != i) {
				int from = current;
				int to = i;
				if (i < current) {
					SWAP(from, to);
				}
				for (int j = from; j <= to; j++) {
					if (!CAN_SELECT(j)) {
						continue;
					}
					bool selected = !items[j].selected;
					select(j, false);
					if (selected) {
						emit_signal(SNAME("multi_selected"), j, true);
					}
				}
				emit_signal(SNAME("item_clicked"), i, get_local_mouse_position(), mb->get_button_index());
			} else {
				if (!mb->is_double_click() && !mb->is_command_or_control_pressed() && select_mode == SELECT_MULTI && items[i].selectable && !items[i].disabled && items[i].selected && mb->get_button_index() == MouseButton::LEFT) {
					defer_select_single = i;
					return;
				}
				if (!items[i].selected || allow_reselect) {
					select(i, select_mode == SELECT_SINGLE || !mb->is_command_or_control_pressed());
					if (select_mode == SELECT_SINGLE) {
						emit_signal(SNAME("item_selected"), i);