لقد أمضيت مؤخراً بعض الوقت في البحث في المواضيع والمناقشات القديمة على ميتا (Meta) والمنتديات الأخرى القائمة على ديسكورس (Discourse)، واكتشفت أن العديد من المستخدمين على مر السنين قد أثاروا نفس القلق مراراً وتكراراً:
بعد نشر رد أو إغلاق نافذة التحرير، يقفز ديسكورس تلقائياً إلى آخر مشاركة في الموضوع.
بالنسبة لعدد لا بأس به من الأشخاص - بمن فيهم أنا - فإن هذا السلوك مزعج بدلاً من أن يكون مفيداً.
لماذا يسبب مشاكل
بناءً على ما أعرب عنه العديد من المستخدمين، تشمل المشاكل الشائعة ما يلي:
عند الرد في منتصف سلسلة طويلة، يتم إغلاق نافذة التحرير ويقفز العرض فجأة إلى الأسفل، مما يجبرك على التمرير عائداً إلى الأعلى لمتابعة القراءة من حيث توقفت.
إذا كنت ترد أثناء متابعة الرسائل القديمة، فإن هذا القفز التلقائي يقطع تدفق القراءة.
اعتقد بعض المستخدمين أيضاً أن هذا قد يكون خطأً (bug)، لأن القفزة تحدث بسرعة كبيرة لدرجة أنها تبدو غير متوقعة وغير بديهية.
تشير العديد من المناقشات السابقة إلى أن الناس جربوا حلولاً بديلة أو نصوصاً برمجية (scripts) أو حيل، ولكن لم ينجح أي منها بشكل موثوق أو رسمي.
باختصار، في حين أن القفز التلقائي إلى أحدث مشاركة مفيد لبعض المستخدمين، إلا أنه غير مرغوب فيه بوضوح للعديد من الآخرين اعتماداً على عاداتهم في القراءة أو سير عملهم.
طلب ميزة: يرجى جعل هذا السلوك اختيارياً
من خلال مراجعة السلاسل السابقة، يبدو أن:
لا يوجد إعداد مدمج لتعطيل هذا القفز التلقائي
لا يوجد مكون إضافي (plugin) رسمي يوفر مفتاح تبديل
المسؤولون والمستخدمون لا يمكنهم حالياً التحكم في هذا السلوك على الإطلاق
لذا أود أن أطلب من ديسكورس توفير إما:
تفضيل للمستخدم، مثل:
“بعد النشر أو إغلاق نافذة التحرير، ابقَ في الموضع الحالي (لا تقفز إلى آخر مشاركة).”
أو
إعداد على مستوى الموقع/للمسؤول، مثل:
“تمكين/تعطيل التمرير التلقائي إلى أحدث مشاركة بعد الردود.”
سيسمح هذا للمجتمعات المختلفة (والمستخدمين الأفراد) باختيار نموذج التفاعل الذي يناسب أسلوب قراءتهم بشكل أفضل. كما أنه يتماشى مع فلسفة تصميم ديسكورس، التي تسمح عادةً بتخصيص سلوكيات تدفق القراءة.
لماذا سيفيد الخيار الجميع
يمكن للمستخدمين الذين يحبون القفز التلقائي الاحتفاظ به كما هو
يمكن للمستخدمين الذين لا يحبونه إيقافه
يمكن لمسؤولي المنتدى تعيين الإعدادات الافتراضية التي تتناسب مع احتياجات مجتمعهم
لن يحتاج أحد إلى الاعتماد على نصوص JavaScript مخصصة هشة أو نصوص مستخدمين للمتصفح
يحسن إمكانية الوصول ويقلل الحركة المفاجئة التي قد تكون غير مريحة لبعض القراء
نظراً لعدد الأشخاص الذين أثاروا هذه المشكلة على مر السنين، فإن إضافة خيار قابل للتكوين يمكن أن يحسن بشكل كبير تجربة المستخدم لجزء كبير من المجتمع.
إذا فاتني إعداد أو مكون إضافي موجود، فلا تتردد في توجيهي إليه - ولكن بناءً على ما وجدته، لا يبدو أن مثل هذا الخيار موجود حالياً.
شكراً للنظر في الأمر، وسأكون ممتناً جداً لأي رؤى من الفريق أو مطوري المكونات الإضافية الآخرين.
ألن يكون من المحير لك أن تنشر شيئًا ثم تجد نفسك على بعد عشرات المشاركات فوق مشاركتك دون أي إشارة إلى أنه تم نشرها؟ لماذا لا تستمر في القراءة حتى تتمكن من التعليق على بقية المشاركات إذا كنت تريد ذلك؟
شكرًا على التوضيح! اسمح لي بتوضيح حالة الاستخدام الفعلية الخاصة بي، لأن السلوك الحالي لا يزال يمثل مشكلة حقيقية بالنسبة لي.
تخيل هذا السيناريو:
أبدأ سلسلة مناقشة، وأذهب للنوم، وفي اليوم التالي أستيقظ لأجد أكثر من مائة رد. الكثير منها مثير للاهتمام، وأريد الرد على بعضها أثناء قراءتي للموضوع.
إليك المشكلة:
عندما أقرأ ردًا في مكان ما في منتصف الموضوع وأرد عليه، يقوم Discourse بعد إرسال ردي بالقفز فورًا إلى أسفل الموضوع تمامًا.
لكن المحادثة ليست في الوقت الفعلي - فقد لا يرد الناس مرة أخرى حتى مرور ساعات. لا أحتاج إلى الانتقال إلى أحدث مشاركة. أريد فقط الاستمرار في قراءة الردود المتبقية بالترتيب.
ما أحتاجه حقًا هو ببساطة:
إشارة واضحة إلى أنه تم نشر ردي بنجاح
دون فقدان موضع القراءة الحالي
حتى أتمكن من الاستمرار في قراءة الردود التالية بالتسلسل بشكل طبيعي
في الوقت الحالي، بعد القفزة التلقائية القسرية، أحتاج إلى التمرير يدويًا إلى الخلف ومحاولة تذكر مكاني، وهو أمر ممل ويكسر تدفق القراءة.
لهذا السبب سيكون الخيار للبقاء في موضع التمرير الحالي بعد النشر مفيدًا للغاية.
القفزة التلقائية مفيدة لبعض سير العمل، ولكن في حالات مثلي، فإنها تعيق الأمر فقط.
شكرًا على النصيحة! لم أكن أعرف عن سلوك Shift + Reply — هذا مفيد بالفعل في بعض المواقف.
ومع ذلك، ما زلت أشعر أن هذا سيستفيد حقًا من إعداد أو تفضيل مستخدم مناسب. استخدام مفتاح معدّل في كل مرة ليس سهل الاكتشاف، ومن السهل نسيانه، خاصة للمستخدمين الأقل تقنية الذين قد لا يعرفون حتى بوجود مثل هذه الاختصارات.
أحد الأشياء التي أقدرها حقًا في Discourse هو الدرجة العالية من الحرية التي يوفرها بالفعل — يمكن للمستخدمين تخصيص العديد من جوانب كيفية قراءتهم وتنقلهم وتفاعلهم. في رأيي، هذه الحرية هي بالضبط ما يجعل Discourse منصة رائعة. مع هذا السلوك المحدد، سيكون من الرائع أن يتمكن المستخدمون ببساطة من اختيار تفضيلهم الافتراضي:
الانتقال تلقائيًا إلى آخر مشاركة بعد الرد، أو
البقاء في الموضع الحالي ومتابعة القراءة
إن وجود إعداد افتراضي واضح بالإضافة إلى القدرة على تعديله سيجعل السلوك أكثر سهولة وبديهية وأكثر سهولة في الوصول إليه. على سبيل المثال، في عادات التصفح الخاصة بي، أميل إلى فتح معظم المواضيع من الصفحة الرئيسية في علامات تبويب جديدة لأن أجهزة الكمبيوتر الحديثة لديها الكثير من الذاكرة، وغالبًا ما يكون إغلاق علامات التبويب أسرع وأكثر ملاءمة من التنقل ذهابًا وإيابًا. هذا مجرد مثال واحد على كيف يقدر المستخدمون المختلفون سير عمل مختلفًا.
لذا فإن فلسفتي العامة هي: كلما زاد خيار المستخدم، كان ذلك أفضل.
إذا كانت الميزة تحتوي على سلوكيات معقولة متعددة، فإن السماح للمستخدم بتحديدها — بدلاً من إجبار الجميع على مسار واحد — يؤدي عادةً إلى تجربة أفضل للجميع. ويعني أيضًا أن المستخدمين مثلي لن يحتاجوا إلى إنشاء نصوص برمجية أو إضافات صغيرة فقط لاستعادة سير عمل يبدو طبيعيًا بالنسبة لنا.
شكرًا مرة أخرى على الرد المفيد، وآمل أن يظل هذا قيد النظر كإعداد اختياري محتمل في المستقبل.
شكرًا على التوجيه — لقد قرأت الآن الموضوع بأكمله “هل سيعود تفضيل disable_jump_reply؟”.
أتفهم المنطق وراء إزالة تفضيل disable_jump_reply القديم: لقد كان معطلاً في ذلك الوقت، وكان يستخدمه عدد قليل جداً من الأشخاص، ويسعى Discourse بشكل عام إلى تجنب تجميع الكثير من الإعدادات العامة للمستخدمين. أرى أيضاً فلسفة التصميم التي وصفتها هناك — استخدام القفز التلقائي كوسيلة لتشجيع الأشخاص على قراءة الموضوع بالكامل قبل الرد، مع إخفاء سير العمل الأكثر “خبرة” خلف أشياء مثل مفاتيح التعديل أو الخيارات المتقدمة.
بالتأكيد يساعد اختصار Shift + Reply في بعض الحالات، وأقدر ذكرك له. المشكلة بالنسبة لي هي:
إنه غير قابل للاكتشاف على الإطلاق ما لم تقرأ هذا الموضوع المحدد في Meta أو يخبرك به شخص ما،
إنه يضيف عبئًا عقليًا لتذكر مفتاح خاص في كل مرة، و
عندما كنت أتابع مواضيع طويلة عبر منتديات Discourse متعددة، فإن الانجراف مئات المشاركات بعيدًا عن المكان الذي كنت أقرأ فيه لا يزال يبدو وكأنه “عقاب” ثقيل لرد بسيط.
أحد الأشياء التي أحبها شخصيًا في Discourse هو مرونته بالضبط: كمسؤول أو كمستخدم، يمكنك تعديل الكثير من التفاصيل لتناسب عادات القراءة والتنقل الخاصة بك. من هذا المنظور، يبدو هذا وكأنه مجال يمكن أن يحدث فيه قدر صغير من القابلية للتكوين الإضافية فرقًا كبيرًا، دون تحويل واجهة المستخدم إلى جدار من الخيارات.
على سبيل المثال، أي من هذه سيكون بالفعل تحسينًا كبيرًا:
خيار مرئي “الرد بدون قفز” في واجهة المستخدم (حتى لو تم اعتباره إجراءً متقدمًا / خبيرًا)،
أو تبديل على مستوى المستخدم / مستوى الموقع مخفي خلف قسم “متقدم”، حتى يتمكن الأشخاص الذين يهتمون حقًا بهذا السلوك من إلغاء القفز مرة واحدة، بدلاً من الاعتماد على اختصار مخفي إلى الأبد.
أتفهم تمامًا القلق بشأن وجود الكثير من التفضيلات، ولست أطلب إعادة كل إعداد غامض. أردت فقط مشاركة وجهة نظر شخص يقضي الكثير من الوقت في الرد أثناء قراءة المشاركات القديمة: بالنسبة لهذا السلوك المحدد، فإن تكلفة عدم وجود خيار واضح وقابل للاكتشاف تبدو أعلى من العديد من التفضيلات الأخرى.
على أي حال، شكرًا لك مرة أخرى على الشرح ونصيحة Shift — من المفيد جدًا معرفة الخلفية، حتى لو كنت لا أزال آمل أن يتم إعادة النظر في هذا كنوع من الإعداد الاختياري أو “الخبير” في المستقبل.
شكراً مرة أخرى — ومن المثير للاهتمام أنني عندما طرحت السؤال نفسه على عدد قليل من منتديات أخرى تعتمد على Discourse، لم يكن لدى العديد من المستخدمين أي فكرة عن أن الضغط على Shift يمنع القفز. لذا، من الواضح أنها ليست ميزة سهلة الاكتشاف.
على الجانب المشرق، بعد أن عرفت آلية Shift، سيكون كتابة إضافة صغيرة أو مكون سمة (theme component) غدًا أمرًا بسيطًا إلى حد ما. في الواقع، يمنحني هذا نهج تطبيق أنظف، حيث لن أحتاج إلى الاعتماد على مراقبي طفرات DOM الثقيلة (heavy DOM mutation observers) لمواجهة التمرير التلقائي — يمكنني الربط بنفس المنطق بدلاً من ذلك.
على أي حال، أقدر المعلومات. حتى لو ظل هذا سلوكًا “للخبراء فقط”، فأنا سعيد لأنني فهمت أخيرًا الآلية الأساسية بما يكفي لتمديدها بشكل صحيح.