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

}
		}
	}
	Ref<InputEventPanGesture> pan_gesture = p_event;
	if (pan_gesture.is_valid()) {
		scroll_bar->set_value(scroll_bar->get_value() + scroll_bar->get_page() * pan_gesture->get_delta().y / 8);
	}
	if (scroll_bar->get_value() != prev_scroll) {
		accept_event(); 
	}
#undef CAN_SELECT
#undef IS_SAME_ROW
}
void ItemList::ensure_current_is_visible() {
	ensure_selected_visible = true;
	queue_redraw();
}
static Rect2 _adjust_to_max_size(Size2 p_size, Size2 p_max_size) {
	Size2 size = p_max_size;
	int tex_width = p_size.width * size.height / p_size.height;
	int tex_height = size.height;
	if (tex_width > size.width) {
		tex_width = size.width;
		tex_height = p_size.height * tex_width / p_size.width;
	}
	int ofs_x = (size.width - tex_width) / 2;
	int ofs_y = (size.height - tex_height) / 2;
	return Rect2(ofs_x, ofs_y, tex_width, tex_height);
}
void ItemList::_update_theme_item_cache() {